3D Secure Olmadan Ödeme (Non-3D Ödeme)
Servis Adresi
POST /PaymentDealer/DoDirectPayment
İstek Parametreleri
PaymentDealerAuthentication
| Parametre | Açıklama |
|---|---|
| DealerCode string | Ruut sistemi tarafından verilen bayi kodu |
| Username string | Ruut sistemi tarafından verilen Api kullanıcı adı |
| Password string | Ruut sistemi tarafından verilen Api şifresi |
| CheckKey string | Kontrol anahtarı (DealerCode + "MK" + Username + "PD" + Password) String olarak birleştirilen bu bilgilerin SHA-256 hash algoritmasından geçirilmesiyle oluşturulur. Buraya tıklayarak deneme ekranına gidebilirsiniz. |
PaymentDealerRequest
| Parametre | Açıklama | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CardHolderFullName string | Kart sahibinin adı soyadı | ||||||||||||||||||||
| CardNumber string | Kart numarası | ||||||||||||||||||||
| ExpMonth string | Son kullanma tarihi ay bilgisi (MM) | ||||||||||||||||||||
| ExpYear string | Son kullanma tarihi yıl bilgisi (YYYY) | ||||||||||||||||||||
| CvcNumber string | Kart güvenlik numarası | ||||||||||||||||||||
| CardToken string | Ruut üzerinde Kart saklama özelliği kullanılıyorsa, Kartın Token’ ı verilerek çekim yapılabilir. Token verilmişse, kart numarası ve diğer kart bilgilerinin (son kul. tarihi, cvc) verilmesine gerek yoktur. Not : İşyeri yetkilerinde, kart numarası gönderirken 3D işlem zorunluluğu olsa bile, Token ile ödeme yapılırken NonSecure (Non-3D) işlem yapılmak isteniyorsa, Ruut' dan bu parametrik yetki istenerek Non3D ödeme servisi de kullanılabilir. |
||||||||||||||||||||
| Amount decimal | Ödeme tutarı (Kuruş kısmı nokta ile yazılır. Örn: 27.50) | ||||||||||||||||||||
| Currency string | Para birimi. Opsiyonel alandır, hiç gönderilmezse veya boş gönderilirse, default’ u TL dir, Diğer değerler : USD, EUR, GBP | ||||||||||||||||||||
| InstallmentNumber integer | Taksit Sayısı. Opsiyonel alandır, hiç gönderilmezse, boş gönderilirse, 0 veya 1 gönderilirse Peşin satış demektir, Taksit için 2 ile 12 arasında bir değer gönderilmelidir. | ||||||||||||||||||||
| ClientIP string | Kart numarasının alındığı uygulamanın (desktop/web) çalıştırıldığı bilgisayarın IP bilgisi | ||||||||||||||||||||
| OtherTrxCode string | Mütabakat sağlamak için kendi Unique Transaction (İşlem) Kodunuzu bu alanda gönderebilirsiniz. (Boş da gönderilebilir). Not : Bayi ödeme detay listesi alırken bu kodunuzu kullanarak Ödeme durumunu öğrenebilirsiniz. | ||||||||||||||||||||
| SubMerchantName string (opsiyonel) | Ekstrede görünmesini istediğiniz isim – Ruut'a önceden bildirilmeli | ||||||||||||||||||||
| IsPoolPayment tinyint | Havuz ödemesi mi ? 0 : Hayır - Karttan çekilen tutar, Ruut ile bayi arasındaki anlaşmaya göre ertesi gün veya daha sonra bayinin hesabına yatırılır. 1 : Evet - Para kredi kartından çekilecek fakat havuzda bekletilecek. Bayi, müşteri hizmet veya ürünü teslim aldıktan sonra ödemeyi onaylayacak ve bu işlemle ilgili ödeme onaydan sonra bayinin ekstresine yansıyacak. Bayi, havuz ödemesini onaylayıncaya kadar, bu ödeme ekstreye dahil edilmez. Havuz sisteminde bir ödeme göndermek için bu alanı 1 yapınız. |
||||||||||||||||||||
| IsTokenized tinyint | Ödeme için girilen kart Ruut sisteminde saklanacak mı ? (Kart saklayabilmek için bayinin kart saklama hizmeti alıyor olması gerekir) 0 : Kart saklanmayacak 1 : Kart saklanacak |
||||||||||||||||||||
| IntegratorId tinyint (opsiyonel) | Hazır ETicaret paketlerine Ruut entegrasyonu yapan Sistem Entegratörü Firmanın ID si – (Entegratör firma değilseniz bu alanı göndermeyiniz !) | ||||||||||||||||||||
| Software string | Ruut ödeme sistemiyle entegre çalışan, bu servisi çağırdığınız E-ticaret paketinin veya yazılımınızın ismi. (Max 30 karakter) | ||||||||||||||||||||
| Description string (opsiyonel) | Açıklama alanıdır. Ödemeye ilişkin bir açıklama yazmak istenirse bu alana yazılabilir.(200 karaktere kadar yazılabilir.) | ||||||||||||||||||||
| IsPreAuth tinyint | Ön provizyon işlemi mi ? 0 : Hayır - Doğrudan Çekim İşlemi 1 : Evet - Ön Provizyon Alma İşlemi (Bir süre sonra DoCapture servisi ile ödemeye dönüştürülmeli) |
||||||||||||||||||||
| BuyerInformation array (opsiyonel) | Bayimizden Ürün/Hizmet satın alan müşterisi ile ilgili alanlardır. Bu alanların gönderilmesi zorunlu olmamasına karşın, Ruut ile paylaşılması,
ileride ödemeyle ilgili oluşabilecek sorunlara karşı, hem bayimizin hem de Ruut' nın menfaatinedir.
|
||||||||||||||||||||
| BasketProduct array (opsiyonel) |
|
||||||||||||||||||||
| CustomerInformation array (opsiyonel) | Ödeme esnasında, kart bilgileri de saklanmak isteniyorsa ve Ruut tarafında bayinin kart saklama hizmeti aktive edilmişse, o zaman bu bilgi bloğu
gönderilerek, müşteri oluşturulup, ödeme için kullanılan kart numarası bu müşteri altına eklenebilir. Kart saklanmak isteniyorsa, kartın saklanacağı müşteriye ait bilgi bu blok içerisinde gönderilmeli.
|
Örnek İstek (JSON)
{
"PaymentDealerAuthentication":{
"DealerCode":"xxx",
"Username":"xxx",
"Password":"xxx",
"CheckKey":"28ba1f316e661ee7a0477a13aa30613da548c94a8098829af9255b04d7e916e3"
},
"PaymentDealerRequest":{
"CardHolderFullName":"Ali Yılmaz",
"CardNumber":"5555666677778888",
"ExpMonth":"09",
"ExpYear":"2024",
"CvcNumber":"123",
"CardToken":"",
"Amount":0.01,
"Currency":"TL",
"InstallmentNumber":1,
"ClientIP":"192.168.1.116",
"OtherTrxCode":"20210114170108",
"SubMerchantName":"",
"IsPoolPayment":0,
"IsTokenized":0,
"IntegratorId":0,
"Software":"Possimulation",
"Description":"",
"IsPreAuth":0,
"BuyerInformation":{
"BuyerFullName":"Ali Yılmaz",
"BuyerGsmNumber":"5551110022",
"BuyerEmail":"aliyilmaz@xyz.com",
"BuyerAddress":"Tasdelen / Çekmeköy"
},
"CustomerInformation":{
"DealerCustomerId":"",
"CustomerCode":"1234",
"FirstName":"Ali",
"LastName":"Yılmaz",
"Gender":"1",
"BirthDate":"",
"GsmNumber":"",
"Email":"aliyilmaz@xyz.com",
"Address":"",
"CardName":"Maximum kartım"
}
}
}
Başarılı İstek Sonucu
Gönderilen istek verileri Ruut’ da başarılı bir şekilde işlenmişse, geri dönüş nesnesinin "ResultCode" alanında "Success" bilgisi yazar.
"Data" alanında ise bankadan dönen işlem sonucu bulunur. "Data" içinde yer alan "IsSuccessful" (true/false) alanı kontrol edilerek
işlemin durumu kontrol edilir. Bu alanda false dönmesi durumunda aynı nesne içindeki ResultCode ve ResultMessage alanları kontrol edilerek işlemin sanal pos üzerinde neden
başarısız olduğu görülebilir.
Bankadan başarılı işlem dönmesi durumunda aynı nesne içindeki VirtualPosOrderId alanından gelen kod saklanmalıdır. İptal, iade veya havuz ödeme onayı işlemleri, bu kod
kullanılarak gerçekleştirilecektir.
Başarılı Sonuç Örneği
{
"Data": {
"IsSuccessful": true,
"ResultCode": "",
"ResultMessage": "",
"VirtualPosOrderId": "ORDER-17131QMlH04026199"
},
"ResultCode": "Success",
"ResultMessage": "",
"Exception": null
}
Başarısız İstek Sonucu
Gönderilen istek verileri Ruut akışları içerisinde işlenemediyse, geri dönüş nesnesinin ResultCode alanında alttaki tablodaki hata kodlarından birisi bulunur.
Beklenmeyen yazılımsal bir hata oluştuğunda ise, ResultCode alanında EX yazar ve ResultMessage alanında alınan hata mesajı (Exception) yer alır.
Her iki durumda da, Data nesnesi null olarak gelir.
| ResultCode | Açıklama |
|---|---|
| PaymentDealer.CheckPaymentDealerAuthentication.InvalidRequest | CheckKey hatalı ya da nesne hatalı ya da JSON bozuk olabilir. |
| PaymentDealer.CheckPaymentDealerAuthentication.InvalidAccount | Böyle bir bayi bulunamadı, Bayi kodu, bayi kullanıcı adı ve/veya şifresi yanlış girilmiş. |
| PaymentDealer.CheckPaymentDealerAuthentication.VirtualPosNotFound | Bu bayi için sanal pos tanımı yapılmamış. |
| PaymentDealer.CheckDealerPaymentLimits.DailyDealerLimitExceeded | Bayi için tanımlı günlük limitlerden herhangi biri aşıldı. |
| PaymentDealer.CheckDealerPaymentLimits.DailyCardLimitExceeded | Gün içinde bu kart kullanılarak daha fazla işlem yapılamaz. |
| PaymentDealer.CheckCardInfo.InvalidCardInfo | Kart bilgilerinde hata var |
| PaymentDealer.DoDirectPayment.ThreeDRequired | Bayi için 3d ödeme gönderme zorunluluğu vardır, Non-3D ödeme gönderemez. |
| PaymentDealer.DoDirectPayment.InstallmentNotAvailableForForeignCurrencyTransaction | Yabancı para ile taksit yapılamaz. |
| PaymentDealer.DoDirectPayment.ThisInstallmentNumberNotAvailableForDealer | Bu taksit sayısı bu bayi için yapılamaz. |
| PaymentDealer.DoDirectPayment.InvalidInstallmentNumber | Taksit sayısı 2 ile 12 arasıdır. |
| PaymentDealer.DoDirectPayment.ThisInstallmentNumberNotAvailableForVirtualPos | Sanal Pos bu taksit sayısına izin vermiyor. |
| EX | Beklenmeyen bir hata oluştu |
Başarısız Sonuç Örneği
{
"Data": null,
"ResultCode": "PaymentDealer.CheckPaymentDealerAuthentication.VirtualPosNotFound ",
"ResultMessage": "",
"Exception": null
}
Ödeme Sonuçlarını Ek olarak Aşağıdaki servislerimizden kontrol edebilirsiniz.
Bilgi Alma İşlemleri - Ödeme ListesiBilgi Alma İşlemleri - Ödeme Transaction Listesi