3D Secure ile Mobil Ödeme

Servis Adresi

İstek Parametreleri

PaymentDealerAuthentication

Parametre Açıklama
DealerCode(string) Moka sistemi tarafından verilen bayi kodu
Username (string) Moka sistemi tarafından verilen Api kullanıcı adı
Password (string) Moka 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
PaymentType (string) Banka Kodu (İş Bankası için 64)
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.
ClientIP (string) Kart numarasının alındığı uygulamanın (desktop/web) çalıştırıldığı bilgisayarın IP bilgisidir.
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=123456
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. Zorunlu alandır. Not: Bayi ödeme detay listesi alırken bu kodunuzu kullanarak Ödeme durumunu öğrenebilirsiniz.
IsPoolPayment (tinyint) Havuz Ödemesi mi? 0: Hayır – Karttan çekilen tutar, Moka ile üye iş yeri arasındaki anlaşmaya göre ertesi gün veya daha sonra üye is yerinin hesabına yatırılır. 1: Evet – Para kredi kartından çekilir ancak havuzda bekletilir. Üye iş yeri müşteri hizmet veya ürünü teslim aldıktan sonra ödemeyi onaylayacak ve bu işlemle ilgili ödeme onaydan sonra üye iş yerinin ekstresine yansıyacaktır. Üye iş yeri havuz ödemesini onaylayıncaya kadar, bu ödeme ekstreye dahil edilmez. Havuz sisteminde bir ödeme göndermek için bu alan 1 olmalıdır.
IntegratorId (tinyint) Hazır E-Ticaret paketlerine Moka entegrasyonu yapan Sistem Entegratörü Firmanın ID si (opsiyonel) – (Entegratör firma değilseniz bu alanı göndermeyiniz !)
Software (string) Moka ö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)
SubMerchantName (string) Ekstrede görünmesini istediğiniz isim (opsiyonel) – Mokaya önceden bildirilmeli
Description (string) Açıklama alanıdır(opsiyonel). Ödemeye ilişkin bir açıklama yazmak istenirse bu alana yazılabilir. (200 karaktere kadar yazılabilir.)
BuyerInformation (Array)(opsiyonel) Üye iş yerinden ürün ve/veya hizmet satın alan müşterisi ile ilgili alanlardır. Bu alanların gönderilmesi zorunlu olmamasına karşın Moka ile paylaşılması ileride ödeme ile ilgili oluşabilecek sorunlara karşı hem üye iş yerinin hem de Moka’ nın menfaatinedir.

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. 10 hane olarak, boşluksuz girilmelidir.
BuyerAddress (string) Opsiyonel alandır.Alıcının adresidir.

Örnek İstek (JSON)


{
   "PaymentDealerAuthentication":{
      "DealerCode":"XXX",
      "Username":"XXX",
      "Password":"XXX",
      "CheckKey":"28ba1f316e661ee7a0477a13aa30613da548c94a8098829af9255b04d7e916e3"
   },
   "PaymentDealerRequest":{
      "PaymentType":"64",
      "Amount":0.01,
      "Currency":"TL",
      "InstallmentNumber":1,
      "ClientIP":"192.168.1.116",
      "OtherTrxCode":"MOB-20201217152028",
      "SubMerchantName":"",
      "IsPoolPayment":0,
      "IntegratorId":0,
      "Software":"Possimulation",
      "Description":"",
      "RedirectUrl":"https://service.TestMoka.com/PaymentDealerThreeD?MyTrxCode=20201217152028",
      "RedirectType":0,
      "BuyerInformation":{
         "BuyerFullName":"",
         "BuyerGsmNumber":"",
         "BuyerEmail":"",
         "BuyerAddress":"Tasdelen / Çekmeköy"
      }
   }
}

Başarılı İstek Sonucu

ÖNEMLİ NOT

Başarılı Sonuç Örneği


{
	"Data":{
      "Url":"https://service.testmoka.com/PaymentDealerThreeDMobileProcess?threeDTrxCode=ee453c30-488f-4cdc-b674-387df6a0eda7&RedirectType=0",
      "CodeForHash":"9FDFBDFC-42C5-417E-AA93-E4D9D5312AAC"
	},
	"ResultCode":"Success",
	"ResultMessage":"",
	"Exception":null
}

Başarısız İstek Sonucu

ResultCodeAçıklama
PaymentDealer.DoDirectPayment3dMobileRequest.IpAddressNotAllowedÜye iş yerinin gönderilen IP adresi ile işlem yapma izni bulunmamaktadır.
PaymentDealer.DoDirectPayment3dMobileRequest.VirtualPosCommissionRateNotFoundSanal posun komisyon oranı tanımlı değil.
PaymentDealer.DoDirectPayment3dMobileRequest.VirtualPosNotAvailableBu işlem için sanal pos seçilemedi.
PaymentDealer.DoDirectPayment3dMobileRequest.InstallmentNotAvailableForForeignCurrencyTransaction Yabancı para birimleri ile taksitli işlem yapılamaz.
PaymentDealer.DoDirectPayment3dMobileRequest.ForeignCurrencyNotAvailableForThisDealerBu üye iş yerinin yabancı para birimi ile işlem alma yetkisi bulunmamaktadır.
PaymentDealer.DoDirectPayment3dMobileRequest.PoolPaymentNotAvailableForDealerBu üye iş yeri için havuzlu ödeme işlemi alma yetkisi bulunmamaktadır.
PaymentDealer.DoDirectPayment3dMobileRequest.PoolPaymentRequiredForDealerBu üye iş yerinin havuzlu ödeme ile işlem yapması zorunludur.
PaymentDealer.DoDirectPayment3dMobileRequest.ChannelPermissionNotAvailableÜye iş yerinin işlem aldığı ödeme kanalı için yetkisi yoktur.
PaymentDealer.DoDirectPayment3dMobileRequest.InvalidInstallmentNumberGeçersiz taksit sayısı
PaymentDealer.DoDirectPayment3dMobileRequest.NoAllowedToUseThisWebServiceÜye iş yerinin bu servisi kullanma yetkisi yoktur.
PaymentDealer.DoDirectPayment3dMobileRequest.AmountRequiredTutar alanının gönderilmesi zorunludur.
PaymentDealer.DoDirectPayment3dMobileRequest.OtherTrxCodeRequiredOtherTrxCode alanının gönderilmesi zorunludur.
PaymentDealer.DoDirectPayment3dMobileRequest.RedirectUrlRequiredRedirecUrl alanının gönderilmesi zorunludur.
PaymentDealer.DoDirectPayment3dMobileRequest.PaymentTypeRequiredPaymentType alanının gönderilmesi zorunludur.
PaymentDealer.DoDirectPayment3dMobileRequest.InvalidPaymentTypeGeçersiz banka kodu
PaymentDealer.DoDirectPayment3dMobileRequest.InvalidCurrencyCodeGeçersiz para birimi
PaymentDealer.DoDirectPayment3dMobileRequest.AgreementDateNotFoundÜye iş yerinin sözleşme kaydı bulunmamaktadır.
PaymentDealer.DoDirectPayment3dMobileRequest.RedirectUrlCannotContainOtherTrxCodeRedirectUrl alanı OtherTrxCode içermelidir.
EX Beklenmeyen bir hata oluştu

Başarısız Sonuç Örneği


{
   "Data":null,
   "ResultCode":"PaymentDealer.DoDirectPayment3dMobileRequest.VirtualPosCommissionRateNotFound",
   "ResultMessage":"",
   "Exception":null
}

3D Secure Mobil İşlem Akışı


image

Ödeme İşlemi Hata Kodları (Bankadan Alınan Hatalar)


ResultCodeResultMessage
000Genel Hata
001Kart Sahibi Onayı Alınamadı
002Limit Yetersiz
003Kredi Kartı Numarası Geçerli Formatta Değil
004Genel Red
005Kart Sahibine Açık Olmayan İşlem
006Kartın Son Kullanma Tarihi Hatali
007Geçersiz İşlem
008Bankaya Bağlanılamadı
009Tanımsız Hata Kodu
010Banka SSL Hatası
011Manual Onay İçin Bankayı Arayınız
012Kart Bilgileri Hatalı - Kart No veya CVV2
013Visa MC Dışındaki Kartlar 3D Secure Desteklemiyor
014Geçersiz Hesap Numarası
015Geçersiz CVV
016Onay Mekanizması Mevcut Değil
017Sistem Hatası
018Çalıntı Kart
019Kayıp Kart
020Kısıtlı Kart
021Zaman Aşımı
022Geçersiz İşyeri
023Sahte Onay
0243D Onayı Alındı Ancak Para Karttan Çekilemedi
0253D Onay Alma Hatası
026Kart Sahibi Banka veya Kart 3D-Secure Üyesi Değil