3D Secure Olmadan Ödeme
Servis Adresi
/PaymentDealer/DoDirectPayment
İstek Parametreleri
PaymentDealerAuthentication
Parametre | Açıklama |
---|---|
DealerCode (string) | Moka sistemi tarafından verilen bayi kodu |
Username (string) | Moka sistemi tarafından verilen kullanıcı adı |
Password (string) | Moka sistemi tarafından verilen şifre |
CheckKey (string) | Kontrol anahtarı (DealerCode + "MK" + Username + "PD" + Password) bilgileriyle elde edilen anahtar SHA-256 hash algoritmasından geçirilerek bu alanda gönderilecektir |
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) | Moka ü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. |
Amount (decimal) | Ödeme tutarı (Kuruş kısmı nokta ile yazılır. Örn: 27.50) |
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 9 arasında bir değer gönderilmelidir. |
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 |
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. |
IsPreAuth (tinyint) | 0 : Doğrudan Çekim İşlemi 1 : Ön Provizyon Alma İşlemi (Bir süre sonra DoCapture servisi ile ödemeye dönüştürülmeli) |
IsPoolPayment (tinyint) | 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 (opsiyonel). Havuz sisteminde bir ödeme göndermek için bu alanı 1 yapınız. |
IntegratorId (tinyint) (opsiyonel) | Hazır ETicaret paketlerine Moka entegrasyonu yapan Sistem Entegratörü Firmanın ID si – (Entegratör firma değilseniz bu alanı göndermeyiniz !) |
Software (string) | Moka ödeme sistemiyle entegre çalışan, bu servisi çağırdığınız Eticaret paketinin veya yazılımınızın ismi. (Max 30 karakter) |
SubMerchantName (string) (opsiyonel) | Ekstrede görünmesini istediğiniz isim – Mokaya önceden bildirilmeli |
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.) |
BuyerInformation (Array)(opsiyonel) | Açıklama alanıdır(opsiyonel). Ödemeye ilişkin bir açıklama yazmak istenirse bu alana yazılabilir. (200 karaktere kadar yazılabilir.)
BuyerFullName (string) Opsiyonel alandır.Alıcının adı ve soyadıdır. BuyerEmail (string) Opsiyonel alandır.Alıcının eposta adresidir. BuyerGsmNumber (string) Opsiyonel alandır.Alıcının cep telefonu numarasıdır. BuyerAddress (string) Opsiyonel alandır.Alıcının adresidir. |
Örnek İstek (JSON)
{
"PaymentDealerAuthentication": {
"DealerCode": "123456",
"Username": "ZXCVBNVBN",
"Password": "abcdef",
"CheckKey": "ff4a6ee22aeafe87f7930f84b5ce2ad9655bfc6b5e430644a88c5b75a09fdee1"
},
"PaymentDealerRequest": {
"CardHolderFullName": "Ali Yılmaz",
"CardNumber": "5555666677778888",
"ExpMonth": "12",
"ExpYear": "2019",
"CvcNumber": "123",
"Amount": 35.5,
"Currency": "TL",
"InstallmentNumber": "1",
"ClientIP": "195.155.96.234",
"OtherTrxCode": "123456",
"IsPreAuth": 0,
"IsPoolPayment": 0,
"IntegratorId": 1,
"Software": "OpenCart",
"Description": "test açıklama",
"BuyerInformation": {
"BuyerFullName": "Elif Yetimoğlu",
"BuyerEmail": "elif@elif.com",
"BuyerGsmNumber": "1111111111",
"BuyerAddress": "Cumhuriyet Mahallesi Taşdelen/Çekmeköy"
}
}
}
Başarılı İstek Sonucu
Gönderilen istek verileri Moka’ 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 Moka’ da başarılı bir şekilde işlenemediyse, geri dönüş nesnesinin "ResultCode" alanında alttaki tablodaki hata kodlarından birisi bulunur. "Data" nesnesi ise null olarak gelir.
ResultCode | Açıklama |
---|---|
PaymentDealer.CheckPaymentDealerAuthentication.InvalidRequest | Hatalı hash bilgisi |
PaymentDealer.CheckPaymentDealerAuthentication.InvalidAccount | Böyle bir bayi bulunamadı |
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 | 3d zorunlu |
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 9 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
}