Ödeme Detay Listesi

Tek Bir Ana Ödeme Kaydının Transaction' ları

Servis Adresi

Ne İçin Kullanılır?

İ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
PaymentId (string) Ödeme kaydının Moka sistemindeki Id’si. Bayi ödeme listesi servisiyle size dönen listede görünen Unique bir ID’ dir. Ödemenin detayını sorgulayabilmek için ya bu ID’ yi ya da kendi Unique ID’ nizi (OtherTrxCode) vermelisiniz.
OtherTrxCode (string) Ödeme gönderirken, bu işleme ait kendi sisteminizin Unique İşlem Numarasını Mokaya göndermişseniz, bu alanı kullanarak ödeme detay sorgusu yapabilirsiniz. Ödemenin detayını sorgulayabilmek için ya bu alanı ya da DealerPaymentId alanını vermelisiniz.

Örnek İstek (JSON)


{
   "PaymentDealerAuthentication":{
      "DealerCode":"xxx",
      "Username":" xxx ",
      "Password":" xxx ",
      "CheckKey":"91e9aa3978e33a8e5867f6ed8fbe2a8a6117db0a2d1f17164801348e68306c07"
   },
   "PaymentDealerRequest":{
      "PaymentId":"1170",
      "OtherTrxCode":""
   }
}

Başarılı İstek Sonucu

PaymentDetail Objesi ile dönen Ödeme ana kaydı durumları şu şekildedir;

PaymentStatus TrxStatus Açıklama
0 - Beklemede 0 - Beklemede Ödeme onayı bekliyor
1 - Ön Provizyon 1 - Başarılı Ön Provizyon başarılı
1 - Ön Provizyon 2 - Başarısız Ön Provizyon başarısız
2 - Ödeme 1 - Başarılı Ödeme başarılı
2 - Ödeme 2 - Başarısız Ödeme başarısız
3 - İptal 1 - Başarılı İptal başarılı
4 - Tam İade 1 - Başarılı İade başarılı

PaymentTrxDetailList Array’ i içinde dönen Ödeme detay kaydı durumları şu şekildedir;

TrxType TrxStatus Açıklama
1 1 Ön Provizyon başarılı
1 2 Ön Provizyon başarısız
2 1 Ödeme başarılı
2 2 Ödeme başarısız
3 1 İptal başarılı
3 2 İptal başarısız
4 1 İade başarılı
4 2 İade başarısız
PaymentReason 0 : Ödeme işlemi değil (iptal veya iade işlemi)
1 : Ödeme işlemi
VoidRefundReason İptal iadenin neden yapıldığını gösterir alandır.
0 : İptal iade işlemi değil (Ödeme işlemi olduğu için, bu kod anlamsız)
2 : Dış Manuel iptal / iade işlemi (Pos.moka.com veya api üzerinden iptal)
3 : İç Manuel iptal / iade işlemi (Moka yönetim panelinden yapılan işlem)

Ödemenin tamamı iade edilmişse, ana ödeme kaydında PaymentStatus = 4 durumuna geçer. Kısmi iade yapılmışsa, ödemenin durumu PaymentStatus = 2 olarak kalır.


Ana ödeme kaydında, Amount alanında ödeme tutarı yazar, RefAmount alanında ise bu ödemeye ilişkin iadelerin toplam tutarı yazar.


Bu ana ödemeye ilişkin Trx kayıtlarındaki Amount alanı ise, Trx kaydının tipine göre anlamlandırılır. TrxType = 2 ise ödeme detayı olduğu için Amount alanı ödeme tutarını gösterir. TxType = 4 ise iade detayı olduğu için Amount alanı iade tutarını gösterir.


Ana ödeme kaydı ile detay kayıtları arasındaki ilişkiyi gösterir örnektir : Tek bir ana ödeme kaydına istinaden, bir veya daha fazla detay kaydı (Transaction kaydı) olabilir. Bir transaction kaydı eklendiği zaman, ana ödeme kaydının durumu değişikliğe uğrayabilir veya aynı kalabilir.

image

Bu örnekte de görüldüğü üzere, 15 ocakta, 3D olarak 100 liralık bir ödeme gönderilmiş ve başarılı sonuç alınmış. Ardından, 18 ocakta 30 liralık bir iade yapılmak istenmiş ama başarılı olamamış. Sonra aynı iade yeniden denenmiş ve başarılı olmuş. Kısmi iade olduğu için ana ödeme kaydının durumu “Başarılı Ödeme” olarak kalmış. Ardından 22 ocakta, 20 liralık başarılı bir kısmı iade daha olmuş. Ve en sonunda 25 ocakta kalan tüm para iade edilmiş. Ve ana ödeme kaydının durumu, “Başarılı Tam İade” ye dönüşmüş.


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


{
   "Data":{
      "IsSuccessful":true,
      "ResultCode":"00",
      "ResultMessage":"",
      "PaymentDetail":{
         "DealerPaymentId":27405,
         "OtherTrxCode":"",
         "CardHolderFullName":"Ahmet Yılmaz",
         "CardNumberFirstSix":"554960",
         "CardNumberLastFour":"5523",
         "PaymentDate":"2017-02-28T14:42:17.26",
         "Amount":20.10,
         "RefAmount":5.10,
         "CurrencyCode":"TL",
         "InstallmentNumber":0,
         "DealerCommissionAmount":0.50,
         "IsThreeD":false,
         "Description":"Ödeme açıklaması",
         "PaymentStatus":2,
         "TrxStatus":1
      },
      "ListItemCount":2,
      "PaymentTrxDetailList":[
         {
            "DealerPaymentTrxId":2971,
            "DealerPaymentId":27405,
            "TrxCode":"26ba712e-6381-4291-8c59-702c13b30d4d",
            "TrxDate":"2017-02-28T14:42:17.837",
            "Amount":20.10,
            "TrxType":2,
            "TrxStatus":1,
            "PaymentReason":1,
            "VoidRefundReason":0,
            "VirtualPosOrderId":" ORDER-17060RYOG07011948",
            "ResultMessage":""
         },
         {
            "DealerPaymentTrxId":2982,
            "DealerPaymentId":27405,
            "TrxCode":"32c19f0f-4853-4a0d-bf7c-fbc687a826a7",
            "TrxDate":"2017-02-28T14:44:32.26",
            "Amount":5.10,
            "TrxType":4,
            "TrxStatus":1,
            "PaymentReason":0,
            "VoidRefundReason":2,
            "VirtualPosOrderId":" ORDER-17060RYOG07011948",
            "ResultMessage":""
         }
      ]
   },
   "ResultCode":"Success",
   "ResultMessage":"",
   "Exception":null
}

Başarısız İstek Sonucu

ResultCodeAçıklama
PaymentDealer.CheckPaymentDealerAuthentication.InvalidRequestCheckKey hatalı ya da nesne hatalı ya da JSON bozuk olabilir.
PaymentDealer.CheckPaymentDealerAuthentication.InvalidAccountBöyle bir bayi bulunamadı.
PaymentDealer.GetDealerPaymentTrxDetailList.PaymentIdErrorPayment Id boş, 0 veya yanlış formatta gönderilirse.
EXBeklenmeyen bir hata oluştu

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


{
	"Data": null,
	"ResultCode": "PaymentDealer.CheckPaymentDealerAuthentication.InvalidAccount ",
	"ResultMessage": "",
	"Exception": null
}