3D Secure ile Mobil Ödeme
Servis Adresi
/PaymentDealer/DoDirectPaymentThreeDMobile
İ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) – Moka'ya ö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.
|
||||||||
Ö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
- 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.
- Kullanıcı, bankanın mobil uygulamasını kullanarak kredi kartı doğrulaması yapabilmesi için bu linke yönlendirilmelidir.
- Data bloğu içerisindeki CodeForHash verisini ise, Moka, ödeme sonucunu bildirmek için kullanacaktır. Bu değeri de veri tabanınızda saklayınız ve bu ödeme isteğiyle ilişkilendiriniz.
- 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 "hashValue", "resultCode", "resultMessage", "trxCode" ve "OtherTrxCode" form alanları okunarak işlemin sonucuna göre gerekli işlemler gerçekleştirilebilir.
- 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.
- Ödemenin başarısız olması durumunda ise başarısızlık nedeni "resultCode" ve "resultMessage" alanları kullanılarak öğrenilebilir.
- hashValue nasıl hesaplanır ve kontrol edilir ?
-
3D Onaylama sonucu sizin RedirectURL’ nize TEXT POST atılarak dönen değerler:
Key : hashValue         Value : cdb7869505bdaaac2f4c891fc9ed889885fd7a0c880127ab5d508883efa3ee83
Key : resultCode         Value :
Key : resultMessage   Value :
Key : trxCode               Value : ORDER-17131QQFG04026575
Key : OtherTrxCode     Value : Your-Transaction-Code -
Ödeme sonucunu ayrıca başka bir URL' ye TEXT POST atmamızı isterseniz, bunu Moka operasyon ekibine bildirebilirsiniz.
Post attığımız URL' den text olarak "OK" cevabı gelirse ödeme sonucunun üye işyerine Post atılabildiği anlaşılır, diğer türlü Post işlemi 2 kez daha denenir.
Sizin vereceğiniz bir URL' ye, her ödemenin tamamlanmasında şu bilgiler POST atılır :
Key : hashValue         Value : cdb7869505bdaaac2f4c891fc9ed889885fd7a0c880127ab5d508883efa3ee83
Key : resultCode         Value :
Key : resultMessage   Value :
Key : trxCode               Value : ORDER-17131QQFG04026575
Key : OtherTrxCode     Value : Your-Transaction-Code
ÖNEMLİ NOT
3D Secure ile ödeme yapıldığında ödeme durumunu kontrol etmek için Get servislerimizi kullanabilirsiniz.
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
ResultCode | Açıklama |
---|---|
PaymentDealer.DoDirectPayment3dMobileRequest.IpAddressNotAllowed | Üye iş yerinin gönderilen IP adresi ile işlem yapma izni bulunmamaktadır. |
PaymentDealer.DoDirectPayment3dMobileRequest.VirtualPosCommissionRateNotFound | Sanal posun komisyon oranı tanımlı değil. |
PaymentDealer.DoDirectPayment3dMobileRequest.VirtualPosNotAvailable | Bu işlem için sanal pos seçilemedi. |
PaymentDealer.DoDirectPayment3dMobileRequest.InstallmentNotAvailableForForeignCurrencyTransaction | Yabancı para birimleri ile taksitli işlem yapılamaz. |
PaymentDealer.DoDirectPayment3dMobileRequest.ForeignCurrencyNotAvailableForThisDealer | Bu üye iş yerinin yabancı para birimi ile işlem alma yetkisi bulunmamaktadır. |
PaymentDealer.DoDirectPayment3dMobileRequest.PoolPaymentNotAvailableForDealer | Bu üye iş yeri için havuzlu ödeme işlemi alma yetkisi bulunmamaktadır. |
PaymentDealer.DoDirectPayment3dMobileRequest.PoolPaymentRequiredForDealer | Bu ü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.InvalidInstallmentNumber | Geçersiz taksit sayısı |
PaymentDealer.DoDirectPayment3dMobileRequest.NoAllowedToUseThisWebService | Üye iş yerinin bu servisi kullanma yetkisi yoktur. |
PaymentDealer.DoDirectPayment3dMobileRequest.AmountRequired | Tutar alanının gönderilmesi zorunludur. |
PaymentDealer.DoDirectPayment3dMobileRequest.OtherTrxCodeRequired | OtherTrxCode alanının gönderilmesi zorunludur. |
PaymentDealer.DoDirectPayment3dMobileRequest.RedirectUrlRequired | RedirecUrl alanının gönderilmesi zorunludur. |
PaymentDealer.DoDirectPayment3dMobileRequest.PaymentTypeRequired | PaymentType alanının gönderilmesi zorunludur. |
PaymentDealer.DoDirectPayment3dMobileRequest.InvalidPaymentType | Geçersiz banka kodu |
PaymentDealer.DoDirectPayment3dMobileRequest.InvalidCurrencyCode | Geçersiz para birimi |
PaymentDealer.DoDirectPayment3dMobileRequest.AgreementDateNotFound | Üye iş yerinin sözleşme kaydı bulunmamaktadır. |
PaymentDealer.DoDirectPayment3dMobileRequest.RedirectUrlCannotContainOtherTrxCode | RedirectUrl 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ışı
Ödeme İşlemi Hata Kodları (Bankadan Alınan Hatalar)
ResultCode | ResultMessage |
---|---|
000 | Genel Hata |
001 | Kart Sahibi Onayı Alınamadı |
002 | Limit Yetersiz |
003 | Kredi Kartı Numarası Geçerli Formatta Değil |
004 | Genel Red |
005 | Kart Sahibine Açık Olmayan İşlem |
006 | Kartın Son Kullanma Tarihi Hatali |
007 | Geçersiz İşlem |
008 | Bankaya Bağlanılamadı |
009 | Tanımsız Hata Kodu |
010 | Banka SSL Hatası |
011 | Manual Onay İçin Bankayı Arayınız |
012 | Kart Bilgileri Hatalı - Kart No veya CVV2 |
013 | Visa MC Dışındaki Kartlar 3D Secure Desteklemiyor |
014 | Geçersiz Hesap Numarası |
015 | Geçersiz CVV |
016 | Onay Mekanizması Mevcut Değil |
017 | Sistem Hatası |
018 | Çalıntı Kart |
019 | Kayıp Kart |
020 | Kısıtlı Kart |
021 | Zaman Aşımı |
022 | Geçersiz İşyeri |
023 | Sahte Onay |
024 | 3D Onayı Alındı Ancak Para Karttan Çekilemedi |
025 | 3D Onay Alma Hatası |
026 | Kart Sahibi Banka veya Kart 3D-Secure Üyesi Değil |
Ödeme Sonuçlarını Ek olarak Aşağıdaki servislerimizden kontrol edebilirsiniz.
Bilgi Alma İşlemleri - Ödeme ListesiBilgi Alma İşlemleri - Ödeme Transaction Listesi