MOKA ÖDEME SERVİSİ IFRAME ENTEGRASYON DOKÜMANI V 2.0 TEMMUZ 2017 Elif YETİMOĞLU Sayfa 1
Servislerin Çağrılması: Moka iframe servisi JSON POST yöntemiyle çalışmaktadır. Aşağıda servis için verilen servis adresi test domain inin sonuna eklenerek oluşan URL e, yine aşağıdaki servis için detaylı bir şekilde örnekleriyle verilen parametreler JSON nesnesi olarak POST edilir. Test Domain: https://clientwebpos.testmoka.com Prod Domain: https://clientwebpos.moka.com Servislerden Yanıt Alınması: Moka servisleri yanıt olarak ApiResponse nesnesi döner. Bu nesnenin ResultCode ve Data alanları okunarak akışlar yönetilebilir. ApiResponse Data ResultCode ResultMessage Exception Sayfa 2
Servis Adı Servis Adresi IFRAME URL OLUŞTURMA İSTEĞİ /Api/WebPos/CreateWebPosRequest PaymentDealerAuthentication 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 Kontrol anahtarı (string) (DealerCode + MK + Username + PD + Password) bilgileriyle elde edilen anahtar SHA-256 hash algoritmasından geçirilerek bu alanda gönderilecektir İstek Parametreleri WebPosRequest OtherTrxCode Mutabakat sağlamak için kendi Transaction (İşlem) (string) Kodunuzu bu alanda gönderebilirsiniz. (Boş da gönderilebilir) Amount(decimal) Ödeme tutarı (Kuruş kısmı nokta ile yazılır. Örn: 27.50) CurrencyId(string) Para birimidir. Aşağıdaki değerlerden birini alır; TL USD EUR GBP InstallmentNumber (integer) IsThreeD(bool) JPY 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. 0: Doğrudan ödeme için iframe oluşturulur. 1: 3D ödeme için iframe oluşturulur. RedirectUrl(string) SubMerchantName (string) RedirectType (integer) Description (string) BuyerInformation (Array) (opsiyonel) Doğrudan satış yetkisi yok ise, 3D ödeme olarak kabul edilip ödeme oluşturulur. Ödeme 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ı Ekstrede görünmesini istediğiniz isim Mokaya önceden bildirilmeli Sonucun yönlendirileceği sayfanın tipi Opsiyonel alandır,hiç gönderilmezse veya 0 gönderilirse, ödeme işleminin sonucu IFrame i içeren ana sayfaya yönlendirilir; 1 gönderilirse sonuç, IFrame içerisine yönlendirilir. 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 e- posta 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. Sayfa 3
Örnek İstek (JSON) Başarılı Sonuç Örneği { "PaymentDealerAuthentication": { "DealerCode": "xxx", "Username": "xxx", "Password": "xxxx", "CheckKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, "WebPosRequest": { "OtherTrxCode": "Elif ", "Amount": 1, "Currency": "TL", "InstallmentNumber": 1, "IsThreeD": "true", "RedirectURL": "https:/pos.testmoka.com/checkoutresult", "SubMerchantName" : "", "RedirectType" :1, "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ı bir istek sonucu olarak geri dönüş nesnesinin ResultCode alanında Success, Data alanında IframeUrl parametresi bulunur. Gelen URL, IFrame olarak kullanılacak sayfada açılır. {"Data":"https://clientwebpos.testmoka.com/iframe/c19ea26b-ecf7-4b7b-9baa- 07bd178a9b46","ResultCode":"Success","ResultMessage":"","Exception":null} Sayfa 4
Başarısız İstek Sonucu ResultCode Açıklama ClientWebPos.CreateWebPosRequest.InvalidRequest Geçersiz istek ClientWebPos.CreateWebPosRequest.InvalidAccount Böyle bir bayi bulunamadı ClientWebPos.CreateWebPosRequest.RedirectURLNot Redirect url verilmemiş Given ClientWebPos.CreateWebPosRequest.ForeignCurrenc Yabancı para ile ödeme bayi ynotavailableforthisdealer için tanımlı değil PaymentDealer. Bayi için tanımlı günlük CheckDealerPaymentLimits.DailyDealerLimitExceed limitlerden herhangi biri ed aşıldı PaymentDealer.CheckDealerPaymentLimits.DailyCar Gün içinde bu kart dlimitexceeded kullanılarak daha fazla işlem yapılamaz Bayi için tanımlı aylık ClientWebPos.CreateWebPosRequest.MonthlyDealerL limitlerden herhangi biri imitexceeded aşıldı ClientWebPos.CreateWebPosRequest.ThreeDRequired 3d zorunlu ClientWebPos.CreateWebPosRequest.InstallmentNot Yabancı para ile taksit AvailableForForeignCurrencyTransaction yapılamaz ClientWebPos.CreateWebPosRequest.ThisInstallmen Bu taksit sayısı bu bayi için tnumbernotavailablefordealer yapılamaz ClientWebPos.CreateWebPosRequest.InvalidInstall Taksit sayısı 2 ile 9 arasıdır mentnumber ClientWebPos.CreateWebPosRequest. Sanal Pos bu taksit sayısına ThisInstallmentNumberNotAvailableForVirtualPos izin vermiyor PaymentDealer.DoDirectPayment3dRequest.InvalidS Bayiye tanımlanmış ubmerchantname submerchant var ve hatalıysa EX Beklenmeyen bir hata oluştu. Başarısız Sonuç Örneği {"Data":null,"ResultCode":" ClientWebPos.CreateWebPosRequest.ForeignCurrencyNotAvailableForThisDealer", "ResultMessage":"","Exception":null} Sayfa 5
ÖDEME İŞLEMİ HATA KODLARI 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 Sayfa 6