tıklayınız - PayU Türkiye
Transkript
tıklayınız - PayU Türkiye
Satıcının web sitesinde (veya mobil uygulamada) "Checkout" (Ödeme) butonuna basan her bir müşteride, siparişin başlatılabilmesi için LiveUpdate (LU) API kullanılarak bir HTTP POST https://secure.payu.com.tr/order/lu.php adresinde başlatılmalıdır. Bunun ardından müşteri, işlemi onaylamak üzere gerekli olan bilgileri girebileceği PayU ödeme sayfalarına yönlendirilir. LiveUpdate API ürün tabanlıdır, yani siparişler satıcı tarafından kendi ürün kodu (önerilen) aracılığıyla satıcının hesabında benzersiz bir şekilde tanımlanan en az bir ürün içermelidir. PayU sunucusu verileri aşağıdaki yapıda ve sırada beklemektedir: MERCHANT Satıcının kimliği, Kontrol Panelinde (Hesap Yönetimi / Hesap Ayarları) mevcuttur. ORDER_REF Satıcının sistemindeki sipariş referans numarası (kolay sipariş kimliği için). ORDER_DATE Siparişin sistemde başlatıldığı tarih, YYYY-AA-GG SS:DD:SS formatında (örn.: "2012-05-01 21:15:45"). ORDER_PNAME[] Ürün isimlerini içeren dizin (maksimum uzunluk: ürün ismi başına 155 karakter). ORDER_PGROUP[] Ürün gruplarının kimliklerini içeren dizin ORDER_PCODE[] Ürün kodlarını içeren dizin (maksimum uzunluk: ürün kodu başına 50 karakter). Aynı ürün kodu ile birden fazla ürünün gönderilecek olması halinde (aynı veya sonraki işlemlerde), PayU ilgili ORDER_PCODE ile ürünü güncelleyecektir (diğer bütün ürün bilgilerini (ismi, fiyatı, vergiler) üzerine yazarak). ORDER_PINFO[] Ek ürün bilgilerini içeren dizin (opsiyonel, ürün ismi altında ödeme sayfalarında görüntülenir). ORDER_PRICE[] Ürün fiyatlarını içeren dizin, pozitif sayı, ondalık ayırıcı olarak "." ile birlikte. ORDER_QTY[] Her bir ürünün miktarını içeren dizin. ORDER_VAT[] Siparişteki her bir ürün için KDV değerlerini içeren dizin. ORDER_PRICE_TYPE[] ORDER_PRICE[] kodunun KDV içerip içermediğini belirten dizin. Olası değerler: "BRÜT" (KDV dahil) ve "NET" (PayU tarafından KDV eklenecek). Parametre opsiyoneldir, ancak belirtilmemesi halinde varsayılan değer "NET" olacaktır. ORDER_SHIPPING Siparişi ilişkin gönderim masrafları. PRICES_CURRENCY Fiyatların, vergilerin, gönderim masraflarının ve indirimlerin ifade edildiği para birimi. Kabul edilen değerler: TRY, EUR, USD. Parametrenin belirtilmemesi halinde, varsayılan değer TRY olacaktır. *Fiyatların belirtildiği para birimi dışında bir para birimi ile işlem yapılacak olması halinde CURRENCY parametresini kullanınız. DISCOUNT Siparişe ilişkin indirim değeri, pozitif sayı, ondalık ayırıcı olarak "." ile birlikte (opsiyonel). DESTINATION_CITY Siparişin teslimatının yapılacağı şehir (opsiyonel). Parametrenin belirtilmesi halinde, müşteri PayU ödeme sayfalarında bu değeri değiştiremeyecektir. DESTINATION_STATE Siparişin teslimatının yapılacağı eyalet (ülke) (opsiyonel). Parametrenin belirtilmesi halinde, müşteri PayU ödeme sayfalarında bu değeri değiştiremeyecektir. Doğrulamaya yönelik olası değerler, Kontrol Paneli içerisinde "State/Country List" altında mevcuttur. PAY_METHOD İşleme ait ödeme yöntemi (opsiyonel). Parametrenin belirtilmesi halinde, müşteri PayU ödeme sayfalarında bu değeri değiştiremeyecektir. Parametrenin belirtilmemesi halinde, hesapta aktif ödeme yöntemlerini içeren bir açılır liste görüntülenir. Olası değerler: CCVISAMC - VISA/MasterCard (varsayılan) INSTALLMENT_OPTIONS Taksitli ödeme seçenekleri ORDER_HASH "2,3,4,5,6,7,8,9,10,11,12" – tüm taksit seçenekleri gösterilir "2,3,7,10,12" - 2,3,7,10,12 taksit seçenekleri gösterilir "2"– 2 taksit olmak üzere tek bir taksit seçeneği gösterilir "," – hiçbir taksit seçeneği gösterilmez (taksit ve tek seferde ödeme bölümü gösterilmez) "" – Satıcı ayarları uygulanır Gönderilen veriye ilişkin HMAC_MD5 imzası . (HMAC, RFC 2104'de tanımlanmaktadır) TESTORDER TEST MODU'nda işlemleri başlatmak üzere kullanılan Boolean parametresi ("0" veya "1") (opsiyonel). Parametrenin aktif olması halinde, PayU ödeme formu test ödeme bilgileri ile doldurulur (herhangi bir kredi kartı test numarasına ihtiyacınız yoktur). DEBUG Uygulama sırasında PayU destek ekibinin yardımını gerektirmek üzere kullanılan Boolean parametresi ("0" veya "1") (opsiyonel). Parametrenin aktif olması halinde, sunucunuz ve PayU arasındaki iletişimin loglarını talep edebilirsiniz. LANGUAGE Ödeme arayüzü için spesifik bir dil ayarlamanızı (ve coğrafi konuma göre tespit edilen dilin geçersiz kılınmasını) sağlar (opsiyonel). Olası değerler: TR - Türkçe EN – İngilizce RO – Romence HU – Macarca RU – Rusça DE – Almanca FR - Fransızca IT – İtalyanca ES - İspanyolca ORDER_TIMEOUT Siparişin verilebileceği süre aralığını ayarlar (opsiyonel, değer olarak saniye sayısını alır). TIMEOUT_URL ORDER_TIMEOUT süresinin dolması halinde, müşterinin yönlendirileceği URL'yi ayarlar (opsiyonel). Aşağıda belirtilen işlem bilgilerini kullanarak bir LiveUpdate talebi oluşturalım: Bilgi Parametre, değer(ler) ve uzunluk(lar) Genel Veriler MERCHANT="PAYUDEMO" (8) ORDER_REF="112457" (6) ORDER_DATE="2012-05-01 15:51:35" (19) Sepet İçeriği ORDER_PNAME[]="MacBook Air 13 inç", "iPhone 4S" (19, 9) ORDER_PCODE[]="MBA13", "IP4S" (5, 4) ORDER_PINFO[]="Uzatılmış Garanti - 5 Yıl", "" (27, 0) ORDER_PRICE[]="1750", "400" (4, 3) ORDER_PRICE_TYPE[]="GROSS", "NET" (5, 3) ORDER_QTY[]="1", "2" (1, 1) ORDER_VAT[]="24", "24" (2, 2) ORDER_SHIPPING="50" (2) PRICES_CURRENCY="RON" (3) DISCOUNT="10" (2) DESTINATION_CITY="Bükreş" (10) DESTINATION_STATE="Bükreş - Sektör 1" (20) DESTINATION_COUNTRY="RO" (2) PAY_METHOD="CCVISAMC" (8) Ek Bilgiler TESTORDER="1" (HMAC MD5 imzasına dahil değildir) LANGUAGE="RO" (HMAC MD5 imzasına dahil değildir) Sipariş verildiği zaman bu bilgileri doğrulamak için, ORDER_HASH parametresinin değeri olarak bir HMAC MD5 imzası gerekir. Hesaplama, Kontrol Paneli altında Hesap Yönetimi / Hesap Ayarları bölümünde yer alan satıcı (veya demo) hesabının gizli anahtarı kullanılarak yapılır. İmza, başına eklenen ilgili uzunluklarla (UTF-8 bayt olarak) yukarıdaki her bir değerden oluşan bir dizi kullanılarak hesaplanır. Örnek sipariş olarak kullanılan bilgiler neticesinde elde edilen dizi aşağıdaki gibidir: 8PAYUDEMO6112457192012-05-01 15:51:3519MacBook Air 13 inç9iPhone 4S5MBA134IP4S27Uzatılmış Garanti - 5 Yıl041750340011122242242503EUR2108Istanbul8Istanbul2TR8CCVISAMC5GROSS3NET112,3,7,10,12 İkinci ürün için ORDER_PINFO[] parametresinde herhangi bir değer bulunmadığına dikkat ediniz. Parametre tanımlanmış olduğundan, dizinin oluşturulması sırasında uzunluğunu (0) dikkate alacağız. TESTORDER ve LANGUAGE parametreleri dizi oluşturmada ve HMAC MD5 hesaplamasında dikkate alınmamıştır. Veriler, her iki uçta da (sunucunuz ve PayU platformu) uzunlukların doğru bir şekilde hesaplanabilmesi için UTF-8 formatında aktarılmıştır. Satıcı hesabının gizli anahtarı P5@F8*3!m0+?^9s3&u8( ise, sonuç olarak meydana gelen HMAC MD5 (ve ORDER_HASH parametresi değeri): 83829ff075d5ba1f50c80df89b648ec4. Sonuç olarak ortaya çıkan LiveUpdate HTTP POST talebi: 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 <form method="post" action="https://secure.payu.com.tr/order/lu.php"> <input type="hidden" name="MERCHANT" value="PAYUDEMO"> <input type="hidden" name="ORDER_REF" value="112457"> <input type="hidden" name="ORDER_DATE" value="2012-05-01 15:51:35"> <input type="hidden" name="ORDER_PNAME[]" value="MacBook Air 13 inç"> <input type="hidden" name="ORDER_PNAME[]" value="iPhone 4S"> <input type="hidden" name="ORDER_PCODE[]" value="MBA13"> <input type="hidden" name="ORDER_PCODE[]" value="IP4S"> <input type="hidden" name="ORDER_PINFO[]" value="Uzatılmış Garanti - 5 Yıl"> <input type="hidden" name="ORDER_PINFO[]" value=""> <input type="hidden" name="ORDER_PRICE[]" value="1750"> <input type="hidden" name="ORDER_PRICE[]" value="400"> <input type="hidden" name="ORDER_PRICE_TYPE[]" value="GROSS"> <input type="hidden" name="ORDER_PRICE_TYPE[]" value="NET"> <input type="hidden" name="ORDER_QTY[]" value="1"> <input type="hidden" name="ORDER_QTY[]" value="2"> <input type="hidden" name="ORDER_VAT[]" value="24"> <input type="hidden" name="ORDER_VAT[]" value="24"> <input type="hidden" name="ORDER_SHIPPING" value="50"> <input type="hidden" name="PRICES_CURRENCY" value="EUR"> <input type="hidden" name="BILL_FNAME" value="John"> <input type="hidden" name="BILL_LNAME" value="Doe"> <input type="hidden" name="BILL_EMAIL" value="[email protected]"> <input type="hidden" name="DISCOUNT" value="10"> <input type="hidden" name="DESTINATION_CITY" value="İstanbul"> <input type="hidden" name="DESTINATION_STATE" value="İstanbul"> <input type="hidden" name="DESTINATION_COUNTRY" value="TR"> <input type="hidden" name="PAY_METHOD" value="CCVISAMC"> <input type="hidden" name="INSTALLMENT_OPTIONS" value="2,3,7,10,12"> <input type="hidden" name="TESTORDER" value="1"> <input type="hidden" name="LANGUAGE" value="RO"> <input type="hidden" name="ORDER_HASH" value="83829ff075d5ba1f50c80df89b648ec4"> <input type="submit" name="submit" value="Gönder!"> </form> Satıcı mağazaları, yapılan LiveUpdate taleplerine fatura ve teslimat bilgilerini dahil etme imkanına sahiptir. Bu özellik, PayU ödeme sayfalarında gönderilen bilgilerin önceden doldurulmasını ve böylece müşterinin bu doldurma işlemiyle vakit kaybetmemesi avantajını sağlar. Fatura ve teslimat parametreleri HASH hesabı için opsiyoneldir, HMAC MD5 hesaplamasına dahil edilmez ve sadece talepte gönderilen değerler ödeme arayüzünde doldurulur. Bu alanların LiveUpdate’e gönderilmesi zorunludur. Fatura Parametresi Açıklama Teslimat Parametresi Açıklama BILL_FNAME Müşteri adı DELIVERY_FNAME Müşteri adı BILL_LNAME Müşteri soyadı DELIVERY_LNAME Müşteri soyadı BILL_CISERIAL Nüfus Cüzdanı Seri Numarası (RO vatandaşları için) - - BILL_CINUMBER Nüfus Cüzdanı Numarası (RO vatandaşları için) - - BILL_CIISSUER Nüfus Cüzdanını Veren Kurum (RO vatandaşları için) - - BILL_CNP Kişisel Kimlik Numarası (RO vatandaşları için) - - BILL_COMPANY Fatura için resmi şirket unvanı DELIVERY_COMPANY Teslimat için resmi şirket unvanı BILL_FISCALCODE Şirketin Vergi Numarası (CUI/VAT ID) - - BILL_REGNUMBER Şirketin Ticaret Sicildeki Sicil Numarası - - BILL_BANK Şirketin bankası - - - - BILL_BANKACCOUNT Şirketin banka hesabı BILL_EMAIL Müşteri e-mail adresi - - BILL_PHONE Telefon numarası DELIVERY_PHONE Telefon numarası BILL_FAX Faks numarası - - BILL_ADDRESS Müşteri/Şirket Adresi DELIVERY_ADDRESS Müşteri/Şirk et Adresi BILL_ADDRESS2 Müşteri/Şirket Adresi (ek alan) DELIVERY_ADDRESS2 Müşteri/Şirk et Adresi (ek alan) BILL_ZIPCODE Müşteri/Şirket Posta Kodu DELIVERY_ZIPCODE Müşteri/Şirk et Posta Kodu BILL_CITY Şehir DELIVERY_CITY Şehir BILL_STATE Eyalet/Ülke DELIVERY_STATE Eyalet/Ülke DELIVERY_COUNTRY CODE Ülke Kodu (Romanya için RO) BILL_COUNTRYCODE Ülke Kodu (Romanya için RO) NOT: DESTINATION_CITY, DESTINATION_STATE veya DESTINATION_COUNTRY parametrelerinin gönderilmesi halinde, bu bilgiler DELIVERY_CITY, DELIVERY_STATE, DELIVERY_COUNTRYCODE parametrelerine ait değerlerin üzerine yazılacaktır. Satıcılar, Kontrol Paneli altında Hesap Yönetimi / Ödeme Formu Ayarları bölümünde PayU sistemi aracılığıyla iletilecek olan kişisel veri miktarını yapılandırabilir. Müşteriyi doğrudan son ödeme adımına yönlendirmek istiyorsak, zorunlu olarak işaretlenen bilgilerin de LiveUpdate aracılığıyla gönderilmesi gerekmektedir. Alanların tamamının opsiyonel/gizli olarak ayarlanmış olması halinde, PayU dolandırıcılık önleme amacıyla asgari olarak şu alanları talep eder: BILL_FNAME, BILL_LNAME, BILL_EMAIL, BILL_PHONE ve BILL_COUNTRYCODE. BILL_PHONE alanını da boş bırakılabilir (bir satıcı olarak müşterilerin telefon numaralarını toplamıyorsanız/kullanmıyorsanız, değer olarak "-" (tire) kullanabilirsiniz). Siparişin son adımına yönlendirmek (örn. CCVISAMC için kart veri girişi) bu bilgiler LiveUpdate ile gönderilecekse, talep içerisinde "1" değerine sahip AUTOMODE bulunmalıdır. NOT: Bu parametre, gerekli tüm alanların gönderilmesi halinde düzgün bir şekilde çalışacaktır. Aksi takdirde, süreç fatura/teslimat verilerinin toplandığı sayfayla başlar. 1 <input type="hidden" name="AUTOMODE" value="1"> Müşteriyi web sitesine geri yönlendirmek için (hesabına veya özelleştirilmiş bir teşekkür sayfasına), bir UTL ile birlikte BACK_REF parametresini kullanabilirsiniz. Varsayılan olarak BACK_REF yönlendirmesi, kullanılan ödeme yönteminin anında provizyon (örn. CCVISAMC ile yapılması halinde; normal WIRE transferi (havale) için olmaz) olması halinde yapılabilir. Aşağıda belirtildiği şekilde satıcı, bir sipariş veya müşteri kimlik tanıtıcı belirtebilmek için GET parametrelerini kullanabilir: 1 <input type="hidden" name="BACK_REF" value="http://domain.com/process.php?order=123456"> Yönlendirmenin PayU'dan geldiğinden emin olmak için, yönlendirmenin yapılacağı URL'ye bir kontrol değişkeni eklenir. Kontrol değişkeni (bir GET parametresi, ctrl) aynı zamanda URL'nin uzunluğunun (parametreler dahil) önüne eklenmesiyle PayU'nun yönlendirdiği URL'den (tüm parametrelerle birlikte) oluşan bir dizi üzerinde hesaplanan HMAC MD5'tir. http://www.yourdomain.com/process.php?order=123456&ctrl=741fcf35a297e256f4090c4dfc0ed652 ctrl HMAC MD5 hesaplaması için kaynak dizisi: 50http://www.yourdomain.com/process.php?order=123456 Hesabınız için etkinleştirilmiş olan birden fazla para birimi varsa, müşteriler ödeme yapacakları para birimini ödeme formunda seçebilirler. Siparişe ilişkin tahsilatları fiyatların ayarlanmış olduğu para biriminden (PRICES_CURRENCY) farklı bir para biriminde olmasını istiyorsanız, opsiyonel parametre gönderebilirsiniz: 1 <input type="hidden" name="CURRENCY" value="USD"> Verilerinizin gönderilmeye çalışılması sırasında hata alıyorsanız, her hata çeşidi için aşağıdaki listeden sorun açıklamalarına bakabilirsiniz: Hata Açıklama ACCES DENIED (Erişim Engellendi) PayU arayüzüne erişmenize izin verilmemektedir. Lütfen PayU destek ekibi ile irtibata geçiniz. Invalid account (Geçersiz hesap) MERCHANT parametresi yanlış veya belirtilmemiş. Access not permitted (Erişime izin verilmiyor) LiveUpdate özelliğine erişiminiz kısıtlanmış. PayU Hesap Müdürünüz ile görüşmelisiniz. Invalid Data (Geçersiz veri) İletmiş olduğunuz veriler doğru bir biçimde oluşturulmamış. Lütfen dizinleri kontrol ediniz. Invalid product code (Geçersiz ürün kodu) ORDER_PCODE[] dizini hatalı oluşturulmuş. Invalid product name (Geçersiz ürün adı) ORDER_PNAME[] dizini hatalı oluşturulmuş. Invalid product group (Geçersiz ürün grubu) ORDER_PGROUP[] dizini hatalı oluşturulmuş. Invalid price (Geçersiz fiyat) ORDER_PRICE[] dizini hatalı oluşturulmuş. Invalid VAT (Geçersiz KDV) ORDER_VAT[] dizini hatalı oluşturulmuş. Invalid Price (Geçersiz Fiyat) Hesaplanan toplam hatalı. DISCOUNT ve ORDER_SHIPPING parametrelerini kontrol ediniz. Invalid Signature (Geçersiz İmza) HMAC_MD5 imzası, gönderilen veri için hatalı hesaplanmıştır. Yukarıda belirtilen tüm verileri içeren, PayU demo hesabında bir TEST işlemi başlatan ve hem AUTOMODE hem de BACK_REF özelliklerini kullanan bir talep aşağıda verilmektedir: 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 40 41 42 43 <form method="post" action="https://secure.payu.com.tr/order/lu.php"> <input type="hidden" name="MERCHANT" value="PAYUDEMO"> <input type="hidden" name="ORDER_REF" value="112457"> <input type="hidden" name="ORDER_DATE" value="2012-05-01 15:51:35"> <input type="hidden" name="ORDER_PNAME[]" value="MacBook Air 13 inç"> <input type="hidden" name="ORDER_PNAME[]" value="iPhone 4S"> <input type="hidden" name="ORDER_PCODE[]" value="MBA13"> <input type="hidden" name="ORDER_PCODE[]" value="IP4S"> <input type="hidden" name="ORDER_PINFO[]" value="Uzatılmış Garanti- 5 Yıl"> <input type="hidden" name="ORDER_PINFO[]" value=""> <input type="hidden" name="ORDER_PRICE[]" value="1750"> <input type="hidden" name="ORDER_PRICE[]" value="400"> <input type="hidden" name="ORDER_PRICE_TYPE[]" value="GROSS"> <input type="hidden" name="ORDER_PRICE_TYPE[]" value="NET"> <input type="hidden" name="ORDER_QTY[]" value="1"> <input type="hidden" name="ORDER_QTY[]" value="2"> <input type="hidden" name="ORDER_VAT[]" value="24"> <input type="hidden" name="ORDER_VAT[]" value="24"> <input type="hidden" name="ORDER_SHIPPING" value="50"> <input type="hidden" name="PRICES_CURRENCY" value="EUR"> <input type="hidden" name="DISCOUNT" value="10"> <input type="hidden" name="DESTINATION_CITY" value="Ankara"> <input type="hidden" name="DESTINATION_STATE" value="Ankara"> <input type="hidden" name="DESTINATION_COUNTRY" value="TR"> <input type="hidden" name="PAY_METHOD" value="CCVISAMC"> <input type="hidden" name="INSTALLMENT_OPTIONS" value="2,3,7,10,12"> <input type="hidden" name="BILL_FNAME" value="Test"> <input type="hidden" name="BILL_FNAME" value="PayU"> <input type="hidden" name="BILL_EMAIL" value="[email protected]"> <input type="hidden" name="BILL_PHONE" value="0212021212"> <input type="hidden" name="BILL_COUNTRYCODE" value="TR"> <input type="hidden" name="DELIVERY_FNAME" value="Test"> <input type="hidden" name="DELIVERY_LNAME" value="PayU"> <input type="hidden" name="DELIVERY_EMAIL" value="[email protected]"> <input type="hidden" name="DELIVERY_PHONE" value="0213031313"> <input type="hidden" name="DELIVERY_COUNTRYCODE" value="TR"> <input type="hidden" name="TESTORDER" value="1"> <input type="hidden" name="AUTOMODE" value="1"> <input type="hidden" name="BACK_REF" value="http://server.com/thankyou.php?order=112457"> <input type="hidden" name="LANGUAGE" value="TR"> <input type="hidden" name="ORDER_HASH" value="533b92f70542e3ec98ab290210e92329"> <input type="submit" name="submit" value="Gönder!"> </form> IPN, PayU sunucuları ve sunucularınız arasında bir bağlantı görevi görerek, online ödeme sisteminde provizyon verilmiş olan tüm siparişlerin otomatik olarak işleme alınmasını mümkün kılar. Bu bildirim yöntemi, kendi sipariş yönetim sisteminizde işlenmek üzere işlem verisinin alınmasını sağlar. Bir sipariş için provizyon ve onay verildiğinde, PayU sunucusu siparişle ilgili tüm bilgileri içeren bir veri yapısını sisteminizde daha önceden ayarlanmış olan bir URL’ye gönderir. Veriler HTTP POST aracılığıyla gönderilir. Veriler ayıca bilgilerin doğrulanması için bir imza içerecektir. İmza, istenen veri seti üzerinde bir ortak PayU/Satıcı anahtarı ile bir HMAC_MD5 işlevi uygulayarak elde edilir (HMAC, RFC 2104’te tanımlanmaktadır). Gönderilen verilerin doğru olarak alınmasına ilişkin herhangi bir konfirmasyon olmaması halinde, PayU sunucusu geçerli bir yanıt alınana kadar birkaç dakikada bir HTTP POST göndermeyi denemeye devam eder. IPN iletişimi alıcının aktif bağlantısından bağımsızdır ve hiçbir şekilde alıcının oturumuna bağlanamaz. Gönderilen veriler aşağıdaki tabloda yer almaktadır: SALEDATE Sipariş verme tarihi, formatı: Y-a-g S:d:s (2012-04-26 14:59:35) PAYMENTDATE Sipariş provizyon tarihi, formatı: Y-a-g S:d:s (2012-04-26 15:01:25) COMPLETE_DATE Sipariş tamamlanma tarihi, formatı: Y-a-g S:d:s (2012-04-26 15:02:28) REFNO Sipariş için global PayU referansı (maksimum uzunluk: 9 karakter) REFNOEXT Sipariş için satıcı referans numarası (maksimum uzunluk: 100 karakter), Satıcı tarafından sağlanır ORDERNO Satıcı sipariş numarası (maksimum uzunluk: 6 karakter) ORDERSTATUS Geçerli sipariş durumu. Olası değerler: PAYMENT_AUTHORIZED – kart ödemesine provizyon verildi PAYMENT_RECEIVED – havaleyle yapılan ödeme alındı TEST – test siparişi CASH – nakit ödemeli sipariş COMPLETE – tamamlanan sipariş (provizyon verilmiş/teslim edilmiş) REVERSED – iptal edilen sipariş REFUND – ödemesi iade edilen sipariş (iade edilen ödeme) PAYMETHOD Kullanılan ödeme yöntemi (maksimum uzunluk: 40 karakter) PAYMETHOD_CODE Ödeme yöntemi kodu. Olası değerler: CCVISAMC IPN_PAID_AMOUNT Finansal maliyete birlikte toplam fiyat (tüm maliyetlerle birlikte ödeme tutarı) IPN_INSTALLMENTS_PROGRAM Ödeme kartının sadakat programı adı IPN_INSTALLMENTS_NUMBER Müşteri tarafından seçilen taksit sayısı IPN_INSTALLMENTS_PROFIT Ödemenin finansal maliyeti FIRSTNAME Adı (maksimum uzunluk: 40 karakter) LASTNAME Soyadı (maksimum uzunluk: 40 karakter) IDENTITY_NO Müşteri nüfus cüzdanı seri numarası ve numarası (Seri Numarası/Numarası – sadece Romanyalı müşteriler için mevcuttur) IDENTITY_ISSUER IDENTITY_NO Nüfus cüzdanını veren kurum IDENTITY_CNP Müşterinin kişisel vatandaşlık numarası, sadece Romanyalı müşteriler için mevcuttur. Bu alan sadece müşteriden bu bilgileri talep etme seçeneğini etkinleştirdiyseniz gösterilir. COMPANY Şirket (maksimum uzunluk: 40 karakter) REGISTRATIONNUMBER Şirketin ticaret sicili sicil kayıt numarası (maksimum uzunluk: 40 karakter) FISCALCODE Sicil Numarası / Veri Numarası (maksimum uzunluk: 40 karakter) CBANKNAME Şirketin Bankası (maksimum uzunluk: 40 karakter) CBANKACCOUNT Şirketin Banka Hesabı (maksimum uzunluk: 50 karakter) ADDRESS1 Adres (maksimum uzunluk: 100 karakter) ADDRESS2 Ek Adres bilgisi (maksimum uzunluk: 100 karakter) CITY Şehir (maksimum uzunluk: 30 karakter) STATE Eyalet/Sektör/Ülke (maksimum uzunluk: 30 karakter) ZIPCODE Posta Kodu (maksimum uzunluk: 20 karakter) COUNTRY Ülke (maksimum uzunluk: 50 karakter) PHONE Telefon Numarası (maksimum uzunluk: 40 karakter) FAX Faks Numarası (maksimum uzunluk: 40 karakter) CUSTOMEREMAIL Müşteri e-mail adresi (maksimum uzunluk: 40 karakter) FIRSTNAME_D Adı (maksimum uzunluk: 40 karakter) LASTNAME_D Soyadı (maksimum uzunluk: 40 karakter) COMPANY_D Şirket (maksimum uzunluk: 50 karakter) ADDRESS1_D Adres (maksimum uzunluk: 100 karakter) ADDRESS2_D Ek adres bilgileri (maksimum uzunluk: 100 karakter) CITY_D Şehir (maksimum uzunluk: 30 karakter) STATE_D Eyalet/Sektör/Ülke (maksimum uzunluk: 30 karakter) ZIPCODE_D Posta Kodu (maksimum uzunluk: 20 karakter) COUNTRY_D Ülke (maksimum uzunluk: 50 karakter) PHONE_D Telefon numarası (maksimum uzunluk: 40 karakter) IPADDRESS İstemci IP adresi (maksimum uzunluk: 250 karakter) CURRENCY Siparişin işleme alındığı para birimi. Olası değerler: TRY, USD, EUR IPN_PID[] PayU veritabanında sipariş edilen ürünlerin Kimlik Kodlarını içeren dizin (PayU referans) IPN_PNAME[] Ürün isimlerini içeren dizin IPN_PCODE[] Sistemde satıcı tarafından atanmış olan ürün kodlarını içeren dizin (satıcı referansı) IPN_INFO[] Sipariş edilen her bir ürün için gönderilen ek bilgileri içeren dizin (PayU tarafından gönderilmişse) IPN_QTY[] Ürün miktarlarını içeren dizin IPN_PRICE[] RON para biriminde, ondalık ayırıcı olarak nokta (.) ile ürün başına birim fiyatları (KDV’siz) içeren dizin. IPN_VAT[] TL para biriminde, ondalık ayırıcı olarak nokta (.) ile ürün başına KDV değerlerini içeren dizin. IPN_VER[] Ürün sürümlerini içeren dizin (maksimum uzunluk: 50 karakter) IPN_DISCOUNT[] Bir promosyonda indirim yapılmış olan tutarları içeren dizin. KDV dahildir. IPN_PROMONAME[] Yukarıda belirtilen indirimlerin uygulandığı promosyonların isimlerini içeren dizin. IPN_DELIVEREDCODES[] PayU sözleşmesinin bu özelliği içermesi halinde, müşterilere gönderilen kodları içeren dizin. Dizindeki her öğe, sipariş edilen miktarın 1’den büyük olması halinde gönderilen her bir kod için ayırıcı olarak virgül (,) ile birlikte gösterilir. IPN_TOTAL[] Ondalık ayırıcı olarak nokta (.) ile sipariş satırındaki kısmi toplam (KDV dahil) IPN_TOTALGENERAL Ondalık ayırıcı olarak nokta (.) ile KDV ve gönderim masrafları dahil olmak üzere toplam işlem tutarı. IPN_SHIPPING Ondalık ayırıcı olarak nokta (.) ile TL para biriminde gönderim için hesaplanan tutar. IPN_GLOBALDISCOUNT Global sipariş indirimi. Bu alan opsiyoneldir ve sadece tutarın 0’dan (sıfır) büyük olması halinde gönderilir. IPN_COMMISSION Ondalık ayırıcı olarak nokta (.) ile PayU komisyonu (TL para biriminde) IPN_DATE IPN POST'un gönderim tarihi, formatı: YagSds (örn.: 20120426145935) HASH Talep imzası (yukarıdaki tüm alanlarda MD5 HMAC) PayU, aşağıdaki formatta (sayfanın herhangi bir yerinde) bir yanıt bekler: 1 <epayment>DATE|HASH</epayment> DATE Yanıtın gönderildiği tarih, format: YagSds (örn.:20120426145935) HASH Yanıt imzası (başlangıç alanları IPN_PID[0], IPN_PNAME[0], IPN_DATE’de MD5 HMAC; DATE – önceki alan) Yanıta ilişkin HMAC hesaplama alanları şöyledir: IPN_PID[0] Orijinal IPN mesajından yansıma – ilk satın alınan ürünün kimliği IPN_PNAME[0] Orijinal IPN mesajından yansıma – ilk satın alınan ürünün adı IPN_DATE Orijinal IPN mesajından yansıma –YagSds formatında (20120426145935) IPN tarihi DATE YagSds formatında (20120426145935) yanıtın tarihi (sunucunuzun saati) Aşağıdaki bilgilere sahip olduğumuzu varsayıyoruz: Alan adı Uzunluk Alan değeri SALEDATE 19 2012-04-26 12:22:09 REFNO 7 1000037 REFNOEXT 0 ORDERNO 2 13 ORDERSTATUS 8 AUTHRECEIVE D PAYMETHOD 8 CCVISAMC FIRSTNAME 4 Test LASTNAME 4 PayU COMPANY 0 REGISTRATIONNUMBER 0 FISCALCODE 0 CBANKNAME 0 CBANKACCOUNT 0 ADDRESS1 14 ADDRESS2 0 CITY 8 İstanbul STATE 8 İstanbul ZIPCODE 5 90210 COUNTRY 7 Türkiye PHONE 11 0268/121212 FAX 0 CUSTOMEREMAIL 13 [email protected] FIRSTNAME_D 4 Test LASTNAME_D 4 PayU COMPANY_D 0 ADDRESS1_D 14 ADDRESS2_D 0 CITY_D 6 Ankara STATE_D 6 Ankara ZIPCODE_D 5 90210 COUNTRY_D 6 Türkiye PHONE_D 11 0268/121212 IPADDRESS 6 node11 CURRENCY 3 TRY IPN_PID[0] 1 1 Some Street 21 Some Street 21 IPN_PNAME[0] 25 Apple MacBook Air 13 inç IPN_PCODE[0] 7 AMBA13I IPN_INFO[0] 0 IPN_QTY[0] 1 1 IPN_PRICE[0] 8 50000.00 IPN_VAT[0] 7 9500.00 IPN_VER[0] 0 IPN_DISCOUNT[0] 4 IPN_PROMONAME[0] 0 IPN_DELIVEREDCODES[0] 0 IPN_TOTAL[0] 8 59500.00 IPN_TOTALGENERAL 8 60095.00 IPN_SHIPPING 6 595.00 IPN_COMMISSION 4 0.00 IPN_DATE 14 2012042612343 4 IPN_PAID_AMOUNT 7 1223.29 IPN_INSTALLMENTS_PROGRAM 5 BONUS IPN_INSTALLMENTS_NUMBER 2 12 IPN_INSTALLMENTS_PROFIT 4 3.26 0.00 Yanıtın kaynak dizisi, aşağıdaki veriler kullanılarak oluşturulur: Alan adı Uzunluk Alan değeri IPN_PID[0] 1 1 IPN_PNAME[0] 25 Apple MacBook Air 13 inç IPN_DATE 14 20120426123434 DATE 14 20120426123434 Sonuç olarak ortaya çıkan dizi: 1125Apple MacBook Air 13 inç14201204261234341420120426123434 Doğrulama için HMAC_MD5 imzası: 5e7457bd605c5fdd80b038b8e2d9d1d9 HASH alan karakterleri küçük harf/büyük harf olabilir (onaltılık düzende dizi). Bildirimin gönderildiği sunucudan gelen yanıt şu şekilde olmalıdır: 1 <epayment>20120426123434|5e7457bd605c5fdd80b038b8e2d9d1d9</epayment> Yanıtın geçerli olmaması halinde, bildirim onaylanmaz. PayU otomatik olarak birkaç dakika içerisinde bildirimi yeniden gönderir. Güvenlik nedenlerinden dolayı, PayU bildirimlerini alan koda erişimin sadece 83.96.157.64/27 IP sınıfına izin verecek şekilde sınırlandırılmasını tavsiye etmekteyiz. IPN bildirimleri üzerinde çalışmak veya test etmek için bir TEST siparişi verilmesini (“TESTORDER” parametresi kullanılarak) tavsiye etmekteyiz. Bildirimi aldıktan sonra istediğiniz sayıda tekrar gönderebilirsiniz; PayU yönetici arayüzünde kullanılabilir filtreleri kullanarak “Orders and reports” bölümünde test siparişini bulun; sipariş ayrıntılarını içeren açılır menüyü açmak için siparişin referansına basın; bu açılır menüde “Re-send notification” linkine basın, “Debug IPN?” seçeneğini işaretleyin ve “Continue” butonuna basın. Bu şekilde, hem IPN talebinin içeriğini hem de kodunuzun yanıtını görebilirsiniz. Anında Teslimat bildirimi, bu konfirmasyonları otomatik olarak PayU sunucusunda kaydeden PayU sistemine kendi sisteminizden otomatik teslimat konfirmasyonları gönderilmesini kolaylaştırır. PayU sisteminde verilen siparişleriniz konfirme edilir edilmez, konfirme edilecek olan işlem için kimlik verilerini içeren ve PayU tarafından sağlanan bir URL’ye yönetim sisteminiz aracılığıyla bir POST gönderilmelidir. PayU sistemi içerisinde konfirme edilmesi gereken her bir sipariş için ayrı bir HTTP POST gerekmektedir. Tüm HTTP POST’lar, POST’da bulunan kimlik verilerine ve bir paylaşımlı anahtara (PayU / Satıcı) dayanan bir HMAC_MD5 imzası kullanılarak doğrulanacaktır. HTTP POST’ta bulunan tanımlama verileri aşağıdaki tabloda anlatılmaktadır ve tam olarak aşağıdaki sırada gönderilmeleri gerekmektedir: Kod Açıklama MERCHANT PayU sistemindeki satıcı kodunu gösterir ORDER_REF PayU sistemindeki sipariş referans kodunu gösterir ORDER_AMOUNT PayU sisteminde alınmış olduğu şekliyle, konfirme edilecek olan siparişin toplam tutarını gösterir ORDER_CURRENCY Siparişin verildiği para birimini gösterir IDN_DATE Teslimat konfirmasyonu talebinin iletildiği tarihi gösterir. <> formatına sahiptir. Burada: Y – Yılı temsil eder. 4 haneli sayı. A – Ayı temsil eder. 2 haneli sayı. G – Günü temsil eder. 2 haneli sayı. S – Saati temsil eder. Değerler 00’dan 24’e kadar. 2 haneli sayı. D – Dakikayı temsil eder. 2 haneli sayı. S – Saniyeyi temsil eder. 2 haneli sayı. ORDER_HASH Talep imzasını gösterir. Bu imza, yukarıdaki tüm alanlardan (1-5) oluşturulan bir HMAC_MD5 tipi imzadır. REF_URL* * Bu alan zorunlu değildir. Bu parametrenin gönderilmemesi veya boş olması halinde, yanıt INLINE gönderilecektir. GET yöntemiyle yanıtın gönderileceği URL adresini gösterir. URL adresi < > sözdizimi ile başlamalıdır. Teslimatın otomatik olarak konfirme edildiği URL: https://secure.payu.com.tr/order/idn.php Bu bölüm, HASH imzasının nasıl hesaplandığını göstermektedir. Giriş verisi örneği: Alan Adı Uzunluk Alan Değeri MERCHANT 4 Test ORDER_REF 7 1000500 ORDER_AMOUNT 4 1645 ORDER_CURRENCY 3 EUR IDN_DATE 19 2012-04-26 17:46:56 MAC hesaplamasına yönelik kaynak dizisi, alanın başında dizi uzunluğunu ekleyerek elde edilmektedir. Verilen giriş verisi ile kaynak dizisi şu şekilde oluşur: 4TEST71000500416453EUR192012-04-26 17:46:56 Bu örnekteki gizli anahtar: AABBCCDDEEFF Son MD5 değeri: 486ae8426384c66a6e175f5f8bafde6e PayU yanıtının INLINE (aynı sayfada) olacak şekilde ayarlanmış olması halinde, aşağıdaki formata sahiptir (sayfanın herhangi bir yerinde): 1 <epayment>ORDER_REF|RESPONSE_CODE|RESPONSE_MSG|IDN_DATE|ORDER_HASH</epayment> PayU yanıtının belirli bir URL’ye gönderilecek olması halinde (REF_URL parametresi geçerli bir URL içermektedir), yanıt aşağıda belirtildiği şekilde gönderilecektir: http://www.mysite.com/prel.php?ORDER_REF=value&RESPONSE_CODE=value&RESPONSE_MSG=value&IDN_ DATE=value&ORDER_HASH=value Kod Açıklama ORDER_REF PayU sipariş referansı olan orijinal IDN talebinden bir yansıma gösterir. RESPONSE_CODE Teslimat konfirmasyonu talebine ait yanıtın kodunu gösterir. Bu kodlar aşağıdaki tabloda açıklanmaktadır. RESPONSE_MSG Teslimat konfirmasyonu talebine ait mesajı göstermektedir. Bu kodlar aşağıdaki tabloda açıklanmaktadır. IDN_DATE Teslimat konfirmasyonu talebinin iletildiği tarihi gösterir. <> formatına sahiptir. Burada: ORDER_HASH Y – Yılı temsil eder. 4 haneli sayı. A – Ayı temsil eder. 2 haneli sayı. G – Günü temsil eder. 2 haneli sayı. S – Saati temsil eder. Değerler 00’dan 24’e kadar. 2 haneli sayı. D – Dakikayı temsil eder. 2 haneli sayı S – Saniyeyi temsil eder. 2 haneli sayı. Talep imzasını gösterir. Bu imza, yukarıdaki tüm alanlardan (1-4) tam olarak aynı sırada oluşturulan bir HMAC_MD5 tipi imzadır. Yanıt kodlarının ve mesajlarının anlamları aşağıda gösterildiği gibidir: Yanıt Kodu Yanıt Mesajı 1 Konfirme edildi. 2 ORDER_REF eksik veya yanlış. 3 ORDER_AMOUNT eksik veya yanlış. 4 ORDER_CURRENCY eksik veya yanlış. 5 IDN_DATE doğru formatta değil. 6 Siparişin konfirme edilmesinde hata oluştu. 7 Sipariş daha önceden konfirme edilmiş. 8 Bilinmeyen hata. 9 Geçersiz ORDER_REF. 10 Geçersiz ORDER_AMOUNT. 11 Geçersiz ORDER_CURRENCY. Not: PayU’dan geçersiz bir yanıt gelmesi halinde sipariş konfirme edilmez. HTTP POST talebine ait yanıt HASH imzası, aşağıdaki veriler kullanılarak hesaplanır: Alan Adı Uzunluk Alan Değeri ORDER_REF 7 1000500 RESPONSE_CODE 1 1 RESPONSE_MSG 9 Konfirme Edildi IDN_DATE 19 2012-04-26 17:46:58 HASH alanları, hem küçük harfli hem de büyük harfli karakterler içerebilirler (onaltılık düzende dizi). Dizi: 71000500119Confirmed192012-04-27 17:46:58 MD5 HASH Değeri: d317bb75d8f1d7fd203314914621c17c Anında İptal/Geri Ödeme Bildirimi (IRN), PayU aracılığıyla ödemesi yapılan siparişler için doğrudan sipariş yönetimi uygulamasından/platformundan iptal/geri ödeme talepleri göndermeyi otomatikleştirmenizi mümkün kılar. İşlem, HMAC_MD5 ile doğrulanmış sipariş bilgilerinin HTTP POST aracılığıyla aşağıdaki URL’ye gönderilmesini gerektirir: https://secure.payu.com.tr/order/irn.php Bu işlem bir siparişin iptalinin, ödenen tutarın kısmi veya tamamen geri ödenmesinin gerekli olduğu durumlarda uygulanmalıdır. PayU sunucusu, aşağıda belirtilen sıraya kesinlikle uyacak şekilde, aşağıdaki yapıda paketlenmiş olan veriler bekler: MERCHANT Satıcının kimliği. PayU yönetim arayüzünde “Account administrator” / “Account Settings” bölümlerinde mevcuttur. ORDER_REF PayU sisteminde siparişe ait referans numarası. ORDER_AMOUNT PayU tarafından alınmış olduğu şekilde iptal edilecek/geri ödenecek olan sipariş tutarı. ORDER_AMOUNT değeri ile gösterilen bu tutarın siparişin toplam tutarından az olması halinde KISMİ GERİ ÖDEME talep edilecektir. ORDER_AMOUNT değerinin sipariş değerine eşit olması halinde TAM GERİ ÖDEME TALEBİ hazırlanacaktır. ORDER_CURRENCY Sipariş tutarının belirtildiği para birimi. IRN_DATE İptal/geri ödeme talebinin hazırlandığı tarih, format: Y-a-g S:d:s (örn.: 2012-04-26 14:30:56) ORDER_HASH Gönderilen veriye ait HMAC_MD5 imzası. (HMAC, RFC 2104’de tanımlanmıştır) REF_URL (opsiyonel) HTTP GET aracılığıyla yanıtın gönderildiği URL (istenmesi halinde). Parametrenin gönderilmemesi veya doğru bir değere sahip olmaması halinde, yanıt sayfa içerisinde gösterilecektir. (örn.: http://www.my-website.com/irn.php) PRODUCTS_IDS İPTAL/GERİ ÖDEME talebinin hazırlandığı ürünlerin kimliklerini içeren dizin. PRODUCTS_QTY PRODUCTS_IDS’de ürünlere ilişkin miktarları içeren dizin. REGENERATE_CODES Ürünle ilişkilendirilen statik listeye yeniden tahsis edilecek olan kodları içeren dizin. LICENSE_HANDLING Lisansla ilgili olarak işleme alınacak olan eylemleri içeren dizin. LICENSE_HANDLING, ‘CANCEL’ veya ‘NONE’ değerlerine sahip olabilir. AMOUNT Geri ödeme tutarını gösteren sayısal değer (PRODUCTS_IDS*PRODUCTS_QTY öğelerinin değerinin tamamının toplamı). KDV ve vergileri içermelidir. PRODUCTS_IDS parametresinin mevcut olması halinde, aşağıda belirtilen doğrulamalar gerçekleştirilir: PRODUCTS_IDS dizininin boş olmaması gerekmektedir; PRODUCTS_QTY dizininin boş olmaması gerekmektedir; PRODUCTS_QTY ve PRODUCTS_IDS dizinleri aynı uzunluğa sahip olmalıdır; PRODUCTS_QTY dizininde bulunan miktarlar, siparişte bulunan miktarlardan az veya eşit olmalıdır; PRODUCTS_IDS[i] * PRODUCTS_QTY[i] şeklinde ürünlerin tutarı ORDER_AMOUNT değerine eşit olmalıdır. LICENSE_HANDLING, REGENERATE_CODES, PRODUCTS_IDS, PRODUCTS_QTY parametreleri gerekli değildir, ancak gönderilmeleri halinde HASH imzası hesaplamasına dahil edilirler. REGENERATE_CODES parametresinin bulunması, ürüne atanan anahtar listesinin dinamik olması halinde bir hata oluşturmaz. 1 2 3 4 5 6 7 8 9 10 11 12 $irn = array( 'MERCHANT'=>$_GET["MERCHANT"], 'ORDER_REF' => 3954142, 'ORDER_AMOUNT'=> 39.99, 'ORDER_CURRENCY'=> 'USD', 'PRODUCTS_IDS'=> array ( 35386, 35387 ), 'PRODUCTS_QTY'=> array ( 1,2 ), 'REGENERATE_CODES'=> array ( '1234-5678-9012-3456' ), 'LICENSE_HANDLING'=> array ( 'CANCEL' ), 'AMOUNT'=> '12.56', 'IRN_DATE'=> tarih( 'Y-m-d H:i:s' ), 'ORDER_HASH'=> 603ced7568f22d656937e8bf0b1b44a9); İPTAL, Satıcı tarafından ürünlerin teslimatı konfirme edildiğinde ve ürünler son müşteriye (Alıcıya) teslim edildiğinde bir siparişin iptal edilmesi işlemidir. İPTAL işlemi durumunda, ödeme konfirmasyonunun ardından kilitlenen işlem tutarı, İPTAL işlemini gerçekleştiren finans departmanının onayının ardından PayU tarafından açılır ve Satıcıya PayU işlem komisyonu ücretlendirilmez. İşleme PayU yönetim arayüzünde ve ödeme bildirimlerinde İPTAL durumu girilir. GERİ ÖDEME, Satıcı tarafından teslimat konfirmasyonunun yapılmasını ardından bir siparişin iptal edilmesi işlemidir. Spesifik bir ödeme için İPTAL/GERİ ÖDEME işlemi onaylandığında, Satıcıya iptal edilen siparişin durumunu (örn. İPTAL veya GERİ ÖDEME) ve eksi değerle gösterilecek şekilde iptal edilen toplam tutarı gösteren bir IPN/e-mail konfirmasyonu gönderilir. Aşağıdaki verilere sahip olduğumuzu varsayalım: Alan adı Uzunluk (bayt) Alan değeri MERCHANT 4 TEST ORDER_REF 7 1000500 ORDER_AMOUNT 4 22.5 ORDER_CURRENCY 3 RON AMOUNT 5 12.56 IRN_DATE 19 2012-04-26 14:30:56 Gönderilen veriyi doğrulamak için, hesabınıza bağlı gizli anahtarla kodlanacak olan bir HMAC_MD5 imzası hesaplanmalıdır. Gizli Anahtar Kontrol Panelinde Hesap Yönetimi / Hesap Ayarları bölümünde mevcuttur. HMAC_MD5 imzasının kaynak dizisi, “yeni satır” karakterleri olmadan her bir alan değerinin başlangıcına alan uzunluğunu ekleyerek oluşturulur (UTF-8 karakterler için, bayt olarak dizi uzunluğu karakter sayısından fazla olabilir). Yukarıda verilen verilerle kaynak dizisi aşağıdaki gibi olur: 4TEST71000500422.53RON512.56192012-04-26 14:30:56 Veri doğrulama için gizli anahtar: AABBCCDDEEFF Yukarıdaki veriler için hesaplanan HMAC_MD5 imzası: 466b8bbd329f003c1d4e5b1003ab50ae PayU, göndermiş olduğunuz bilgilerin başarılı bir şekilde alınmış olduğunu aşağıda belirtildiği şekilde bilgileri alan sayfanın içerisine bir yanıt yerleştirerek doğrular: 1 <epayment>ORDER_REF|RESPONSE_CODE|RESPONSE_MSG|IRN_DATE|ORDER_HASH </epayment> PayU tarafından gönderilen doğrulama yanıtı içerisindeki parametreler: ORDER_REF IRN tarafından alınan PayU sistemindeki sipariş referansı RESPONSE_CODE İptal/geri ödeme talebi için yanıt kodu RESPONSE_MSG İptal/geri ödeme talebi için yanıt mesajı IRN_DATE Sipariş iptali/geri ödemesi talebi yanıtının gönderildiği tarih, format: Y-a-g S:d:s (örn.: 2012-04-26 14:30:56) ORDER_HASH Veri doğrulama için HMAC_MD5 imzası REF_URL parametresinin IRN aracılığıyla gönderilmesi ve geçerli bir URL içermesi halinde, yanıt aşağıda gösterilene benzeyen bir URL’ye gönderilir: REF_URL = http://www.mysite.com/callback.php Yanıt: http://www.mysite.com/callback.php?ORDER_REF=valoare&RESPONSE_CODE= valoare &RESPONSE_MSG=valoare&IRN_DATE=valoare&ORDER_HASH=valoare Yanıt kodları ve mesajlar şöyledir: OK ORDER_REF eksik veya formatı hatalı ORDER_AMOUNT eksik veya formatı hatalı PRODUCTS_IDS eksik veya formatı hatalı PRODUCTS_QTY eksik veya formatı hatalı ORDER_CURRENCY eksik veya formatı hatalı IRN_DATE doğru formatta değil Siparişin iptal edilmesinde hata oluştu Sipariş daha önceden iptal edilmiş Bilinmeyen hata Geçersiz ORDER_REF Geçersiz ORDER_AMOUNT Geçersiz ORDER_CURRENCY Geçersiz PRODUCTS_QTY Geçersiz REGENERATE_CODES Geçersiz LICENSE_HANDLING AMOUNT eksik veya formatı hatalı Geçersiz AMOUNT IOS, bir siparişin durumu için PayU platformunda sorgulama yapmayı mümkün kılmaktadır. IOS, https://secure.payu.com.tr/order/ios.php adresi üzerinden HTTP POST veya HTTP GET ile çalıştırılabilir. PayU veritabanında yapılacak olan sorgulama, her seferinde bir sipariş için olmak üzere ayrı ayrı yapılabilecektir. Bir sipariş durumu için PayU sisteminde sorgulama yapmak için aşağıdaki parametreler gerekmektedir: MERCHANT PayU’daki satıcı tanımlama kodu. REFNOEXT Satıcı tarafından siparişle birlikte gönderilen harici referans numarası. HASH Talep imzası (Yukarıda belirtilen alanlarla oluşturulan bir dizi üzerinden HMAC MD5). Talep, gönderilen veriler ve bir paylaşımlı anahtar (PayU/satıcı) kullanılarak hesaplanan bir HMAC_MD5 imzası ile doğrulanır. İmzanın oluşturulacağı dizi şu şekilde oluşturulur: parametre uzunluğu + parametre değeri. MERCHANT: EPAYMENT REFNOEXT: EPAY10425 İmzanın hesaplandığı dizi: 8EPAYMENT9EPAY10425 Gizli anahtar: AABBCCDDEEFF HASH: 9937070708323db2dd9d154b7bd010a5 PayU sistemi, aşağıda belirtilen değerlerle XML formatında “inline” olarak yanıt verecektir: ORDER_DATE Sipariş tarihi, format: Y-a-g S:D:s (Y-yıl-4 hane, a-ay-2 hane, g-gün-2 hane, S-saat-2 hane, ddakika-2 hane, s-saniye-2 hane) REFNO Siparişe ait global PayU referans numarası (maksimum 9 karakter). REFNOEXT LiveUpdate aracılığıyla sipariş için verilen satıcı referans numarası (maksimum 10 karakter). ORDERSTATUS Geçerli sipariş durumu. Olası değerler: NOT_FOUND – mevcut olmayan/tamamlanmamış sipariş WAITING_PAYMENT – sipariş verildi ve ödemesi bekleniyor CARD_NOTAUTHORIZED – ödeme için kullanılan karta provizyon verilmedi IN_PROGRESS – ödemeye provizyon verildi, sipariş onay sürecinde PAYMENT_AUTHORIZED – ödemeye provizyon verildi, sipariş onaylandı COMPLETE – tamamlanan sipariş (ücretlendirildi/teslim edildi) FRAUD – dolandırıcılık şüphesi bulunan sipariş INVALID – müşteri tarafından geçersiz bilgi girildi TEST – test siparişi CASH – teslimatta nakit ödemeli sipariş REVERSED – sipariş iptali, müşteri hesabında paranın kilidi açıldı REFUND – sipariş geri ödemesi, tutar müşteri hesabına havale edildi PAYMETHOD Kullanılan ödeme yöntemi (maksimum 40 karakter) HASH Talep imzası (yukarıda belirtilen tüm alanlarda HMAC MD5) 1 2 3 4 5 6 7 8 <!--?xml version="1.0" ?--> <order> <order_date>2006-10-26 10:15:00</order_date> <refno>1074992</refno> <refnoext>EPAY10425</refnoext> <order_status>PAYMENT_AUTHORIZED</order_status> <paymethod> Kredi kartı/banka kartı (Visa/MasterCard)</paymethod> </order> Satıcının aynı harici referansla birden fazla sipariş göndermesi halinde, sorgulama ilgili referans için veritabanında en son tarihli işleme ilişkin bilgileri verir.
Benzer belgeler
Adobe LiveCycle Policy Server
LiveCycle Policy Server ile iki tür kontrol politikası
tanımlanabilir:
Çevrimiçi (online) belge kontrolü