Ödeme Detay Listesi
Tek Bir Ana Ödeme Kaydının Transaction' ları
Servis Adresi
/PaymentDealer/GetDealerPaymentTrxDetailList
Ne İçin Kullanılır?
Bu servis, Tek bir ana ödeme kaydına ait Transaction' ların listelenmesini sağlar. Hem ana ödeme kaydı, hem de Transaction kayıt bilgilerini döner. Örneğin 15.01.2021 tarihinde başarılı bir ödeme yapılmışsa ve de 21.01.2021 tarihinde başarılı bir kısmi iade gerçekleştirilmişse, Bu servise ilgili ödemenin kodunu verirseniz, ana ödeme kaydı bilgilerini ve de o ana ödemeye ait 2 adet transaction kayıtlarını (ödeme kaydı ve iade kaydı) listeleyebilirsiniz.
İ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ı Moka'ya 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
Gönderilen istek verileri Moka’ da başarılı bir şekilde işlenmişse, geri dönüş nesnesinin "ResultCode" alanında "Success" bilgisi yazar. "Data" alanında ise Moka’ dan dönen işlem sonucu bulunur. "Data" içinde yer alan "IsSuccessful" (true/false) alanı kontrol edilerek işlemin durumu kontrol edilir. Bu alanda false dönmesi durumunda aynı nesne içindeki ResultCode ve ResultMessage alanları kontrol edilerek işlemin neden başarısız olduğu görülebilir. "IsSuccessful": true olması durumunda ise "PaymentDetail" nesnesi içinde ödemeye ait detay bilgileri döner.
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.
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
Gönderilen istek verileri Moka akışları içerisinde işlenemediyse, geri dönüş nesnesinin "ResultCode" alanında alttaki tablodaki hata kodlarından birisi bulunur.
Beklenmeyen yazılımsal bir hata oluştuğunda ise, "ResultCode" alanında EX yazar ve "ResultMessage" alanında alınan hata mesajı (Exception) yer alır.
Her iki durumda da, "Data" nesnesi null olarak gelir.
ResultCode | Açıklama |
---|---|
PaymentDealer.CheckPaymentDealerAuthentication.InvalidRequest | CheckKey hatalı ya da nesne hatalı ya da JSON bozuk olabilir. |
PaymentDealer.CheckPaymentDealerAuthentication.InvalidAccount | Böyle bir bayi bulunamadı. |
PaymentDealer.GetDealerPaymentTrxDetailList.PaymentIdError | Payment Id boş, 0 veya yanlış formatta gönderilirse. |
EX | Beklenmeyen bir hata oluştu |
Başarısız Sonuç Örneği
{
"Data": null,
"ResultCode": "PaymentDealer.CheckPaymentDealerAuthentication.InvalidAccount ",
"ResultMessage": "",
"Exception": null
}