3D Secure ile Ödeme
Servis Adresi
/PaymentDealer/DoDirectPaymentThreeD
İ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 |
RedirectUrl (string) | 3D işlemi sonucunda, başarılı ya da başarısız işlem sonucunun döndürüldüğü ve kullanıcının yönlendirildiği bayi web sayfası. Bu URL’ yi verirken, sonuna parametre olarak kendi işlem ID’ nizi yazarsanız, hangi işleminizin sonucunu aldığınızı belirlemiş olursunuz. Örnek : https://www.mysite.com/PayResult?MyTrxId=1A2B3C4DF5R Önemli Not : URL sonuna yazdığınız kendinize ait işlem kodunun, güvenliğiniz için, tahmin edilemez bir kod olmasını tercih ediniz. |
RedirectType (integer) | Opsiyonel alandır. Default değeri 0 (sıfır) dır. Ödeme işleminin sonucu servisi çağıran web sitesinde ana sayfaya yönlendirme yapar. IFrame içerisinden bu servis çağrılmışsa ve sonuç IFrame içine redirect yapılsın isteniyorsa, bu alana 1 yazılmalıdır. |
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": 3,
"Software": "OpenCart",
"RedirectUrl": "https://pos.testmoka.com/DealerPayment/PayResult?MyTrxId=1A2B3CD456",
"RedirectType": 0,
"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 nesnesinin "ResultCode" alanında "Success" bilgisi yazar, "Data" alanında ise bir link bulunur. (Örn:"https://service.testmoka.com/PaymentDealerThreeDProcess?threeDTrxCode= 0cc02f5f-ac4f-47fb-aa94-167582552caa")
- Kullanıcı, bankadan şifre talep edebilmesi ve SMS ile gelen şifreyi girerek kredi kartı doğrulaması yapabilmesi için bu linke yönlendirilmelidir.
- Kullanıcı kart doğrulama işlemini tamamladıktan sonra, servis çağrılırken gönderilen "RedirectUrl" linkine otomatik olarak geri yönlendirilir. Yani sizin verdiğiniz URL’ ye Post atılır
- Bu yönlendirme sırasında "isSuccessful", "resultCode", "resultMessage" ve "trxCode" form alanları okunarak işlemin sonucuna göre gerekli işlemler gerçekleştirilebilir.
- "isSuccessful" değerinin "true" olması durumunda doğrulama ve ödemenin başarıyla yapıldığı anlaşılır; "false" olması durumunda ise doğrulama ya da ödeme işleminin başarısız olma nedeni "resultCode" ve "resultMessage" alanları kullanılarak öğrenilebilir.
- Bankadan başarılı işlem dönmesi durumunda trxCode alanı içinde dönen OrderId saklanmalıdır. İptal, iade veya havuz ödeme onayı işlemleri, bu kod kullanılarak gerçekleştirilecektir.
- 3D Onaylama sonucu sizin URL’ nize post atılarak dönen değerler:
Key : isSuccessful Value : True
Key : resultCode Value :
Key: resultMessage Value :
Key: trxCode Value : ORDER-17131QQFG04026575
Başarılı Sonuç Örneği
{
"Data": "https://service.testmoka.com/PaymentDealerThreeDProcess?threeDTrxCode=0cc02f5fac4f-47fb-aa94-167582552caa",
"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
}
3D Secure İşlem Akışı
