1. Giriş
Kısaca ALU olarak adlandırdığımız PayU apisi Automatic Live Update isimli apinin kısaltmasıdır. ALU, firmaların online ödeme ile tahsilat yapmasına yani özetle müşterilerine kendi web sitelerinden kart kullanarak alışveriş yapma imkanı sunan apidir.
ALU, işyerlerine online tahsilatta esneklik ve tam bir kontrol sağlar. ALU'nun özellikleri şu şekilde özetlenebilir:
- Kolay Entegrasyon
- Ödeme Sayfasını Kendi İsteklerinize Göre Tasarlayabilme
- Güvenli Altyapı
2. Nasıl Çalışır?
ALU, işyerlerine online tahsilatta esneklik ve tam bir kontrol sağlar.
Adım 1
Kart sahibi yani alışverişi yapan kişi kendi web sitenizin ödeme sayfasındaki "Satın Al" butonunu tıkladığında tarayıcı program (Firefox, Chrome, Internet Explorer, Safari) bu bilgileri sizin web site sunucunuza yollar.
Adım 2
Sisteminiz yani işyeri web sunucusu bu bilgileri HTTPS ile PAyU sistemine gönderir. PayU sistemi girilen kart bilgisini ürün ve adres bilgileri ile birlikte alır ve tahsilat işlemini başlatır. Bu işlem saniyeler içerisinde olur. ALU request detaylarına
burdan ulaşabilirsiniz.
Adım 3
PayU sistemi tahsilat için bankadan onay ister. Aldığı sonucu kendine ait sonuç haline getirir ve sizin web sunucunuza döner. PayU dönüş bilgisi XML formatındadır. Dönüş bilgisinin detaylarına
burdanulaşabilirsiniz.
Adım 4
Web sitenizdeki sistem PayU dönüş bilgisini alır, işler ve sitenizden alışveriş yapmakta olan kişiye sitenize özgü formatta o kişinin tarayıcı programında gösterir.
B. 3D Secure Sistemine Kaydolmuş Kartlar İçin Akış
Adım 1
Kart sahibi yani alışverişi yapan kişi kendi web sitenizin ödeme sayfasındaki "Satın Al" butonunu tıkladığında tarayıcı program (Firefox, Chrome, Internet Explorer, Safari) bu bilgileri sisin web site sunucunuza yollar.
Step 2
Sisteminiz yani işyeri web sunucusu bu bilgileri HTTPS ile PAyU sistemine gönderir. PayU sistemi girilen kart bilgisini ürün ve adres bilgileri ile birlikte alır ve tahsilat işlemini başlatır. Bu işlem saniyeler içerisinde olur. ALU request detaylarına
burdan ulaşabilirsiniz.
Step 3
PayU sistemi tahsilat isteğinde gönderilen kart bilgilerini bankaya gönderir ve kartın 3D secur esistemine kayıtlı olup olmadığını kontrol eder. Sonrasında ALU cevabını (response) XML formatında döner. 3D secure sistemine kayıtlı olan kart için Örnek bir responsea
burdan ulaşabilirsiniz.
Adım 4
İşyeri web sitesindeki sistem kart sahibinin tarayıcısında 3D secure doğrulama işlemini yaptıracak formu gösterir.
Adım 5 ve 6
Kart sahibi yani online alışverişi yapan kişi PayU sunucusu üzerinden banka 3D secure formuna yönlendirilir.
Adım 7 ve 8
Banka sistemi kart sahibinin tarayıcısında 3D secure formu gösterir, kart sahibi cep telefonuna gelen SMS şifreyi bu forma girer.
Adım 9
Eğer kart sahibi doğru 3d şifreyi girerse banka tahsilatı onaylar. Banka tahsilatı onaylarsa PayU da onaylar.
Adım 10
PayU işyeri sunucusunda konfigüre edilmiş BACK_REF_URL'deki adrese kendi cevabını döner. Bu cevap HTTP POST yöntemi ile gönderillir ve şu bilgileri içerir; REFNO, ALIAS, STATUS, RETURN_CODE, RETURN_MESSAGE ve DATE. Cevapla ilgili detaylara
burdan ulaşabilirsiniz.
Adım 11
Web sitenizdeki sistem PayU dönüş bilgisini alır, işler ve sitenizden alışveriş yapmakta olan kişiye sitenize özgü formatta o kişinin tarayıcı programında gösterir.
3. Tahsilat isteği (Request) nasıl oluşturulur?
Bu HTTP post aşağıdaki mecburi alanları mutlaka içermelidir.
ALU protokolü sayesinde işyeri kendi web sitesindeki ödeme sayfasında tam bir kontrole sahiptir ve bu ödeme sayfasını dilediği tasarımda sunabilir.
A. Mecburi Parametreler
Parametre | Tanım |
MERCHANT | İşyeri ismi. Bu parametreye size ait PayU kontrol panelinden ulaşabilirsiniz. ( Hesap Yönetimi->Hesap Ayarları) |
ORDER_REF | Harici referans numarası |
ORDER_DATE | Siparişin gerçekleştiği tarih. Formatı;in YYYY-MM-DD HH:MM:SS Örnek: 2012-05-01 21:15:45
ÖNEMLİ: Tarih UTC formatında olmalıdır. (Vikipedi'de UTC) |
PAY_METHOD | Ödeme methodu. Possible values: Default olarak CCVISAMC değerindedir. Kart ile tahsilatlar için Bu değer gönderimelidir. |
ORDER_HASH | HMAC_MD5 imzası.
Tahsilat isteğinde gönderilen her parametrenin uzunluğu ve her parametrenin kendisi string birleştirme yapılarak birleştirilir. Sonrasında bunlar tek bir stringde birleştirilip hash string oluşturulur. ORDER_HASH, oluşturulan bu hash string ve her işyerine özel secret key kullanılarak hesaplanan hash değeridir. Hash hesaplama ile ilgili detaylara burdanulaşabilirsiniz. |
BACK_REF | Tahsilat tamamlandıktan sonra dönülen url adresi. |
Ürün Detayları
Parametre | Tanım |
ORDER_PNAME[] | Ürün isimlerinden oluşan dizi. Her bir ürün için en az 2, en fazla 155 karakter olabilir) |
ORDER_PCODE[] | Ürün kodlarından (SKU ya da benzer kod) olışan dizi. Herbir ürün için en fazla 50 karakterdir. Array filled with the product codes Eğer bir ürün aynı ürün kodu ile tekrar yollanırsa PayU sistemi bu ürüne ait bilgiyi günceller. |
ORDER_PRICE[] | Ürün fiyatlarından oluşan dizi. Fiyatların gönderildiği default para birimi PRICES_CURRENCY parametresi ile set edilir. |
ORDER_QTY[] | Ürün miktarlarından oluşan dizi. |
PRICES_CURRENCY | Ürün fiyatlarının gönderileceği para birimi. ÖrnekTRY
Eğer bu parametre yollanmazsa default para birimi işyerine sipariş alma yetkisi verilen para birimi ne ise o değeri alır. |
Fatura Bilgileri
Parametre | Tanım |
BILL_LNAME | Alışverişi yapan kart sahibinin soyadı |
BILL_FNAME | Alışverişi yapan kart sahibinin adı |
BILL_EMAIL | Alışverişi yapan kart sahibinin eposta adresi |
BILL_PHONE | Alışverişi yapan kart sahibinin soyadı telefon numarası |
BILL_COUNTRYCODE | Alışverişi yapan kart sahibinin bulunduğu ülkenin 2 haneli kodu. Örnek:TR |
Kart Bilgileri
Parametre | Tanım |
CC_NUMBER | Kart numarası |
EXP_MONTH | Kartın son kullanma tarihinin ayı Örnek:06 |
EXP_YEAR | Kartın son kullanma tarihinin yılı Örnek:2025 |
CC_CVV | Kartın arka yüzündeki 3 haneli sayı. Birçok kart tipinde arka yüzdeki 6 haneli sayının ilk 3 hanesidir |
CC_OWNER | Kart sahibinin adı soyadı |
B. Diğer Parametreler
Sipariş Detayları
Parametre | Tanım |
ORDER_PINFO[] | Ürün bilgilerinden oluşan dizi |
ORDER_VER[] | Ürün versiyonlarından oluşan dizi |
SELECTED_INSTALLMENTS_NUMBER | Taksit sayısı. 2 ila 9 taksit yapılabilir, 2 ve 9 dahildir |
CARD_PROGRAM_NAME | Taksite imkan veren taksit programı ismi. Axess,Bonus, Maximum, CardFinans, World, AsyaCard, Advantage, Paraf değerlerinden sadece biri olabilir |
ORDER_TIMEOUT | Order expire olma süresi. Saniye cinsinden |
USE_LOYALTY_POINTS | Alabileceği değer: YES. Sipariş puan ile yapılacaksa bu değer gönderilir. Sadece peşin yani taksitsiz ödemeler için geçerlidir. |
Fatura Bilgileri
Parametre | Tanım |
BILL_FAX | Fax numarası |
BILL_ADDRESS | Adres |
BILL_ADDRESS2 | Adres (devamı) |
BILL_ZIPCODE | Posta kodu |
BILL_CITY | Şehir |
BILL_STATE | Bölge |
Kargo Bilgileri
Parametre | Tanım |
DELIVERY_LNAME | Kargonun gönderileceği kişinin soyadı |
DELIVERY_FNAME | Kargonun gönderileceği kişinin adı |
DELIVERY_EMAIL | Kargonun gönderileceği kişinin eposta adresi |
DELIVERY_PHONE | Kargonun gönderileceği kişinin telefon numarası |
DELIVERY_COMPANY | Kargonun gönderileceği şirketin ismi |
DELIVERY_ADDRESS | Kargonun gönderileceği adres |
DELIVERY_ADDRESS2 | Kargonun gönderileceği adres (devam) |
DELIVERY_ZIPCODE | Kargonun gönderileceği yerin posta kodu |
DELIVERY_CITY | Kargonun gönderileceği şehir |
DELIVERY_STATE | Kargonun gönderileceği bölge |
DELIVERY_COUNTRYCODE | Kargonun gönderileceği ülkenin iki haneli kodu. Örnek: TR |
Diğer Bilgiler
Parametre | Tanım |
CLIENT_IP | Alışverişi yapan kişinin bilgisayarnın IP adresi |
CLIENT_TIME | Alışverişi yapan kişinin kullandığı web tarayıcısından alınan tarih. Format: YYYY-MM-DD hh:mm;ss |
B. ORDER_HASH Hesaplanması
Tahsilat güvenliğini sağlamak amacı ile her tahsilat isteği benzersiz bir hash değeri içermelidir. Hash değeri tahsilat isteğinde gönderilen parametreler ve işyerine özel secret key kullanılarak
HMAC MD5 metodu ile hesaplanır. Hash değerinin hesaplanmasında kullanılan algoritma
RFC 2104 dokümanında anlatılmaktadır.
Örnek olarak bir tahsilat örneğini inceleyelim. OPU_TEST işyeri ismi ve bu işyerine ait SECRET_KEY değerli secret key ile tahsilat isteği gönderen bir işyeri tahsilat isteğinde aşağıdaki değerleri gönderiyor olsun:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
"MERCHANT" => "OPU_TEST"
"ORDER_REF" => "7305"
"ORDER_DATE" => "2013-03-11+13:00:04"
"ORDER_PNAME[0]" => "Ticket1"
"ORDER_PCODE[0]" => "TCK1"
"ORDER_PINFO[0]" => "Barcelona flight"
"ORDER_PRICE[0]" => "100"
"ORDER_QTY[0]" => "1"
"ORDER_PNAME[1]" => "Ticket2"
"ORDER_PCODE[1]" => "TCK2"
"ORDER_PINFO[1]" => "London flight"
"ORDER_PRICE[1]" => "200"
"ORDER_QTY[1]" => "1"
"PRICES_CURRENCY" => "TRY"
"PAY_METHOD" => "CCVISAMC"
"SELECTED_INSTALLMENTS_NUMBER" => "3"
"CC_NUMBER" => "4355084355084358"
"EXP_MONTH" => "01"
"EXP_YEAR" => "2016"
"CC_CVV" => "123"
"CC_OWNER" => "FirstName LastName"
"CLIENT_IP" => "127.0.0.1"
"BILL_LNAME" => "John"
"BILL_FNAME" => "Doe"
"BILL_EMAIL" => "shopper@payu.ro"
"BILL_PHONE" => "1234567890"
"BILL_COUNTRYCODE" => "TR"
"DELIVERY_FNAME" => "John"
"DELIVERY_LNAME" => "Smith"
"DELIVERY_PHONE" => "0729581297"
"DELIVERY_ADDRESS" => "3256 Epiphenomenal Avenue"
"DELIVERY_ZIPCODE" => "55416"
"DELIVERY_CITY" => "Minneapolis"
"DELIVERY_STATE" => "Minnesota"
"DELIVERY_COUNTRYCODE" => "MN"
|
NOT ORDER_PNAME, ORDER_PCODE, ORDER_PINFO, ORDER_PRICE and ORDER_QTY parametreleri HTTP isteğinde köşeli parantezler yani [] işaretleriarasında gönderilmelidir.
Adım 1: Tahsilat isteğinde gönderilen tüm parametreleri alfabetik olarak sıralayalım
NOT Sıralama parametrelerin değerine göre değil İSİMLERİNE göre yapılmalıdır.
Sıralamadan sonraki durum şu şekilde olur:
1
2
|
BACK_REF,BILL_COUNTRYCODE, BILL_EMAIL, BILL_FNAME,
BILL_LNAME, BILL_PHONE,CC_CVV, CC_NUMBER, CC_OWNER,
CLIENT_IP, DELIVERY_ADDRESS, DELIVERY_CITY, DELIVERY_COUNTRYCODE,
DELIVERY_FNAME, DELIVERY_LNAME, DELIVERY_PHONE, DELIVERY_STATE,
DELIVERY_ZIPCODE, EXP_MONTH, EXP_YEAR, MERCHANT,
ORDER_DATE, ORDER_PCODE[0], ORDER_PCODE[1], ORDER_PINFO[0],
ORDER_PINFO[1], ORDER_PNAME[0], ORDER_PNAME[1], ORDER_PRICE[0],
ORDER_PRICE[1], ORDER_QTY[0], ORDER_QTY[1], ORDER_REF,
PAY_METHOD, PRICES_CURRENCY, SELECTED_INSTALLMENTS_NUMBER
|
ÖNEMLİ Eğer sipariş birden fazla ürün içeriyorsa, ORDER_PNAME[], ORDER_PCODE[], ORDER_PINFO[], ORDER_PRICE[], ORDER_VER[] and ORDER_QTY[] dizileri hash stringde buna uygun yer almalıdır.
Step 2: Parametre değerlerinden oluşan stringi her parametre değerinin uzunluğunu o parametrenin başına gelecek şekilde oluştur. Oluşan tüm bu stringleri bir stringde birleştir.
Örneğin, merchant ismi OPU_TEST olduğu için MERCHANT parametresine ait string 8OPU_TEST olur. (8 karakterlik OPU_TEST stringi şeklinde).
NOT Eğer tahsilat parametrelerinden herhangi bir gönderilmezse bu hash stringe 0 olarak eklenmelidir. Örneğin SELECTED_INSTALLMENTS_NUMBER gönderilmezse hash stringin sonunda bunun için bir adet 0 olmalıdır. Sonunda olmasının nedeni SELECTED_INSTALLMENTS_NUMBER parametresinin bu örnekte en sonda gelmesidir.
Bu iki adımın sonunda elde ettiğimiz hash string şu şekilde olur:
Adım 3: Şimdi bu adımda HMAC MD5 şifreleme algoritması ile hash değerini hesaplayalım. Hash değeri hesaplanırken hash string algoritmaya kaynak string olarak, merchant secret key ise algoritmaya key olarak katılır.
Hesaplama sonucunda hash değeri şu şekilde olur:
1
2
|
14de52ecc7ca8202bbef94f2471e5768
|
Step 4: Şimdi bu hash değerini tahsilat isteğini göndereceğimiz HTTP posta ekleyelim
1
2
|
ORDER_HASH: "14de52ecc7ca8202bbef94f2471e5768"
|
PayU sistemi HTTP post ile gönderilen bu hash değerini alıp kendi hesapladığı ile karşılaştıracaktır. Eğer iki hash değeri eşit ise PayU sistemi işleme devam eder, eğer eşit değilse "Hash Mismatch" hatası verir. Hash yönteminin kullanılması ile man in the middle atakları önlenmiş olu.
C. 3D Secure Entegrasyonu
Alışverişi yapan kişinin kartı 3d secure sistemine kayıtlı ise PayU sistemi response XML'de 3DS_ENROLLED şeklinde cevap döner ve URL_3DS parametresi içinde 3d secure doğrulama yapılacak adresi döner. İşyeri bu adrese yönlendirme yapar. Yönlendirilen adreste kart sahibi 3d secure şifresini girip doğrulama yapar. Doğrulama tamamlanındığında PayU sistemi işyeri sistemine bir HTTP post gönderir, bu gönderim BACK_REF urle yapılır. HTTP post içerisinde REFNO, ALIAS; STATUS, RETUTN_CODE, RETURN_MESSAGE, DATE bilgileri bulunur. Bunların detayları
burda anlatılmıştır.
4. Response Yapısı
PayU sisteminin response yapısının detayları aşağıda anlatılmaktadır. İşyeri sistemi responseu alıp işlemeli ve kendi sistemine uygun hale getirmelidir. 3d secure kartlarla yapılan siparişler için response BACK_REF urle HTTP post ile dönülür.
Parametre | Tanım |
REFNO | PayU sisteminin siparişe verdiği benzersiz numara |
ALIAS | İşleme ait benzersiz string değer. İşyeri bu değeri kendi sisteminde kayıt takibi için kullanabilir |
STATUS | Muhtemel Değerler:
- SUCCESS - Eğer sipariş onaylanırsa bu değer döner. REFNO değeri döner (Response örneği)
- FAILED - Sipariş onaylanmazsa bu değer döner. REFNO değeri döner fakat payment sipariş olarak kaydedilir (Response örneği)
- INPUT_ERROR - Eğer sipariş isteğinde eksik parametre varsa ya da herhangi bir sebepten dolayı request hatalı/bozuk gelmişse döner (Response örneği)
|
RETURN_CODE | Muhtemel değerler:
- AUTHORIZED - Eğer sipariş onaylanmışsa (Response örneği)
- 3DS_ENROLLED - Eğer kart 3d secure sistemine kayıtlı ise döner (Response örneği)
- ALREADY_AUTHORIZED - Daha önce gerçekleşmiş bir siparişin ref no değeri ile sipariş yapılmaya çalışılırsa döner (Response örneği)
- AUTHORIZATION_FAILED - Onay alMAmışsa döner (Response örneği)
- INVALID_CUSTOMER_INFO - Sipariş müşteri bilgisi eksik ya da bozuksa döner(Response örneği)
- INVALID_PAYMENT_INFO - Kart bilgisi doğru değil ise döner(Response örneği)
- INVALID_ACCOUNT - Merchant name değeri yanlış ise döner(Response örneği)
- INVALID_PAYMENT_METHOD_CODE - Payment method değeri yanlış ise döner(Response örneği)
- INVALID_CURRENCY - Para birimi yanlış ise döner(Response örneği)
- REQUEST_EXPIRED - Tahsilat isteğinde gönderilen order ile siparişin yapıldığı tarih arasında 10 dakikadan fazla fark varsa döner. (Response örneği)
- HASH_MISMATCH - Gönderilen hash değeri uyuşmuyorsa döner.(Response örneği)
- WRONG_VERSION - ALU versiyonu yanlış ise döner(Response örneği).
|
RETURN_MESSAGE | Hata detayını içeren mesaj |
DATE | Response tarihi. UTC formatındadır |
ORDER_REF | İşyerinin gönderdiği sipariş numarası |
AUTH_CODE | Banka otorizasyon kodu |
URL_3DS | Kart 3d secure sistemine kayıtlı ise döner. Alışverişi yapan kişinin 3d doğrulama yapacağı urli içerir. İşyeri bu urle yönlendirme yapmalıdır. (Response örneği). |
HASH | Tahsilat isteğinde gönderilen parametre ve bunların değerlerinden hesaplanan hash değerini içerir Yanlış gönderilirse hash mismatch hatası dönülür |
5. Başarısız Siparişler İçin Dönüş Kod ve Mesajları
Aşağıda başarısız siparişler için dönülen kod ve mesajlara yer verilmiştir(<status>FAILED</status>).
Dönüş Kodu | Tanım |
GW_ERROR_GENERIC | Sipariş oluşurken bir hata oluştu. Lütfen daha deneyiniz |
GW_ERROR_GENERIC_3D | 3D doğrulama yapılırken bir hata oluştu |
GWERROR_-9 | Geçersiz son kullanma tarihi |
GWERROR_-3 | Acquirer birimini arayınız |
GWERROR_-2 | Sipariş işleminde hata. Lütfen tekrar deneyiniz |
GWERROR_05 | Sipariş onaylanmadı |
GWERROR_08 | Geçersiz tutar |
GWERROR_13 | Geçersiz tutar |
GWERROR_14 | Kart hatalı |
GWERROR_15 | Kart hatalı |
GWERROR_19 | Siparişi tekrar deneyiniz |
GWERROR_34 | Fazla sayıda deneme |
GWERROR_41 | Kayıp ya da çalıntı kart |
GWERROR_43 | Çalıntı kart |
GWERROR_51 | Yetersiz bakiye |
GWERROR_54 | Vadesi dolmuş kart |
GWERROR_57 | Karta kapalı işlem |
GWERROR_58 | İşyerine kapalı işlem |
GWERROR_61 | Tutar limiti aşıldı |
GWERROR_62 | Kısıtlanmış kart |
GWERROR_65 | Tekrar limiti aşıldı |
GWERROR_75 | PIN tekrar limiti aşıldı |
GWERROR_82 | Kart bankasında time out |
GWERROR_84 | Hatalı CVV |
GWERROR_91 | Kart bankasında teknik problem |
GWERROR_96 | Sistem hatası |
GWERROR_2204 | Kart taksite kapalı |
GWERROR_2304 | Bu sipariş devam eden durumda |
GWERROR_5007 | Banka debit kartlarıyla sadece 3D işlem yapılabilir |
ALREADY_AUTHORIZED | Tekrar deneyiniz |
NEW_ERROR | Banka, sistemin tanımadığı yeni bir hata döndü |
WRONG_ERROR | Tekrar deneyin |
-9999 | Banlanmış işlem |
1 | Banka destek birimi ile görüşünüz |
6. Kaynaklar
cURL ile Tahsilet İsteği
Aşağıdaki örnekde komut satırından cURL kullanarak tahsilat isteği örneklenmektedir.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
curl -L https: //secure .payu.com. tr /order/alu/v2 \
-d BACK_REF=https%3A%2F%2Fwww.example.com%%2Falu%2F3ds_return.php \
-d BILL_COUNTRYCODE=TR \
-d BILL_EMAIL=shopper%40payu.ro \
-d BILL_FNAME=Doe \
-d BILL_LNAME=John \
-d BILL_PHONE=1234567890 \
-d CC_CVV=123 \
-d CC_NUMBER=4355084355084358 \
-d CC_OWNER=FirstName+LastName \
-d CLIENT_IP=127.0.0.1 \
-d EXP_MONTH=01 \
-d EXP_YEAR=2016 \
-d MERCHANT=OPU_TEST \
-d ORDER_DATE=2013-03-11+16%3A34%3A02 \
-d ORDER_PCODE[0]=TCK1 \
-d ORDER_PCODE[1]=TCK2 \
-d ORDER_PINFO[0]=Barcelona+flight \
-d ORDER_PINFO[1]=London+flight \
-d ORDER_PNAME[0]=Ticket1 \
-d ORDER_PNAME[1]=Ticket2 \
-d ORDER_PRICE[0]=100 \
-d ORDER_PRICE[1]=200 \
-d ORDER_QTY[0]=1 \
-d ORDER_QTY[1]=1 \
-d ORDER_REF=7295 \
-d DELIVERY_FNAME=John \
-d DELIVERY_LNAME=Smith \
-d DELIVERY_PHONE=7295 \
-d DELIVERY_ADDRESS=3256+Epiphenomenal+Avenue \
-d DELIVERY_ZIPCODE=55416 \
-d DELIVERY_CITY=Minneapolis \
-d DELIVERY_STATE=Minnesota \
-d DELIVERY_COUNTRYCODE=MN \
-d PAY_METHOD=CCVISAMC \
-d PRICES_CURRENCY=TRY \
-d SELECTED_INSTALLMENTS_NUMBER=3 \
-d ORDER_HASH=14de52ecc7ca8202bbef94f2471e5768
|