Ödeme Adımı Ekleme
Servis Adresi
/DealerSale/AddPaymentPlan
İstek Parametreleri
DealerSaleAuthentication
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. |
DealerSaleRequest
Parametre | Açıklama |
---|---|
DealerSaleId (integer) | SaleCode gönderilirse zorunlu değil. Moka tarafında, satışın Unique ID sidir. |
SaleCode (string) | DealerSaleId gönderilirse zorunlu değil. Bayi tarafında, satışın kodudur. |
PaymentDate (string) | Hangi tarihte çekim yapılacak ("YYYYMMDD" formatında) |
Amount (decimal) | Çekilecek tutar. ( örn: 25.45 ) |
Currency (string) | Zorunlu alan değildir. Hiç gönderilmezse veya boş string gönderilirse varsayılan para birimi TL’dir. (diğer değerler : "USD", "EUR") |
InstallmentNumber (integer) | Taksit miktarı (1: Tek çekim, 2: 2 Taksit ...) |
Örnek İstek (JSON)
{
"DealerSaleAuthentication": {
"DealerCode": "xxx",
"Username": "xxx",
"Password": "xxx",
"CheckKey": "aabbccddeeff"
},
"DealerSaleRequest": {
"DealerPaymentPlanId": "1003",
"PaymentDate": "20170825",
"Amount": "1",
"Currency": "TL",
"InstallmentNumber": "1"
}
}
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 dönen işlem sonucu bulunur. "Data" içinde yer alan bilgileri kontrol ederek akışlarınızı devam ettirebilirsiniz.
Satış eklendikten sonra, belirtilen zamanlamaya göre, Moka, otomatik olarak karttan tahsilatları yapacaktır.
Gün içerisinde 2 kez tahsilat denemesi yapılır ve dilerseniz bu çekim sonuçlarını Moka' ya bir URL bildirerek anında
kendi sunucunuza Post attırabilirsiniz.
Vereceğiniz URL' ye, bu ödeme adımı ile ilgili bütün bilgiler TEXT POST olarak gönderilecektir.
Gönderilecek parametreler ve açıklamaları şu şekildedir :
Post Alanı | Açıklama |
---|---|
DealerPaymentPlanHistoryId | Ödeme adımı için yapılan her bir çekim denemesi bir HistoryId üretir |
DealerPaymentPlanId | Ödeme adımı ID sidir. Otomatik veya manuel oluşturulan her bir ödeme adımı, bir ID üretir |
DealerCustomerId | Bu çekimin yapılması için daha önceden eklenmiş işyerinin müşterisinin (kart sahibinin) Moka tarafındaki ID sidir |
CustomerCode | İşyerinin müşterisinin, işyeri tarafındaki kodudur |
DeaerSaleId | Bu çekimin yapılabilmesi için önceden eklenmiş satışın Moka tarafındaki ID sidir |
SaleCode | Satışın, işyeri tarafındaki kodudur |
DealerPaymentId | Çekim işlemi sonucu oluşan Ödeme ID sidir |
DealerId | Çekim işlemini yapan işyeri ID sidir |
Amount | Çekim tutarıdır |
HistoryStatus | Bu çekim işleminin durumunu gösterir.   0: Basarisiz Çekim    1: Basarili Çekim |
VirtualPosOrderId | Bu çekime ait, bankadan dönen ödeme numarasıdır. Bu ID kullanılarak ödeme iptal edilebilir veya iade talebinde bulunulabilir |
ResultCode | Bir hata alınması durumunda, Moka nın döneceği hata kodudur |
ResultMessage | Bir hata alınması durumunda, Moka nın döneceği hata mesajıdır |
PostToken | HashInfo yu oluşturmak için kullanılacak olan bir koddur |
HashInfo | SHA256(DealerCode + Username + Password + PostToken) İşyeri, kendi API erişim bilgilerini ve PostToken alanını String Concatenate yaparak bir SHA256 fonksiyonuna sokar ve bir Hash kodu oluşturur. Oluşan hash kodu, bu alan içinde gelen değerle aynı mı diye kontrol edilir. Değer aynıysa, bu POST işleminin Moka tarafından gönderildiğinden emin olunur |
Parametre | Açıklama |
---|---|
DealerPaymentPlanId (integer) | Moka tarafında bu ödeme adımı için verilen Unique Id’ dir. |
DealerSaleId (integer) | Moka tarafında bu ödeme adımının eklendiği satışın Id’ sidir. |
SaleCode (integer) | Bayi tarafında bu ödeme adımının eklendiği satışın kodudur. |
PaymentDate (string) | Çekimin yapılacağı tarih |
Amount (decimal) | Çekilecek tutar |
Currency (string) | Para birimi |
InstallmentNumber (integer) | Taksit bilgisi |
HistoryDate (datetime) | Henüz ödeme yapılmaya başlanmadığı için bu alan boş döner. |
CardToken (guid) | Henüz ödeme yapılmadığı için Token boş döner. |
DealerCustomerTypeId (integer) | Ödeme isteği gönderilerek ödeme yapılma durumunda dolu gelir. |
UserPosPaymentId (integer) | Ödeme isteği gönderilerek ödeme yapılma durumunda dolu gelir. |
DealerPaymentId (integer) | Bu ödeme adımı henüz ödemeye dönüşmediği için Ödeme Id boş döner. |
IsManualPlan (boolean) | Bu ödeme adımı manuel girildiği için "true" olarak döner. |
PlanStatus (integer) | Ödeme adımı oluşturulduğunda ilk Status "0" olur. |
Başarılı Sonuç Örneği
{
"Data": {
"DealerPaymentPlanId": 1003,
"DealerSaleId": 1003,
"SaleCode": "satis",
"PaymentDate": "20170825",
"Amount": 1,
"Currency": "TL",
"InstallmentNumber": 1,
"HistoryDate": "",
"CardToken": "",
"DealerCustomerTypeId": 0,
"UserPosPaymentId": 0,
"DealerPaymentId": 0,
"IsManualPlan": true,
"PlanStatus": 0
},
"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 |
---|---|
DealerSale.AddPaymentPlan.InvalidRequest | CheckKey hatalı ya da nesne hatalı ya da JSON bozuk olabilir. |
DealerSale.AddPaymentPlan.SaleCodeOrDealerSaleIdMustBeGiven | Satış kodu veya bayi satış id girilmelidir. |
DealerSale.AddPaymentPlan.AmountIsRequired | Tutar bilgisi gerekli. |
DealerSale.AddPaymentPlan.PaymentDateIsRequired | Çekim yapılacak tarih bilgisi gerekli. |
DealerSale.AddPaymentPlan.InvalidInstallmentNumber | Taksit numarası geçersiz |
DealerSale.AddPaymentPlan.InvalidDateFormatPaymentDate | Çekim yapılacak tarih bilgisi formatı geçersiz. |
DealerSale.AddPaymentPlan.PaymentDatePassed | Çekim yapılacak tarih geçti. |
DealerSale.AddPaymentPlan.InvalidCurrencyCode | Para birimi kodu geçersiz. |
DealerSale.AddPaymentPlan.DealerSaleIsNotManualPlan | Bayi satışı manual plan değil. |
DealerSale.AddPaymentPlan.SaleEndDatePassed | Satış için çekim yapılacak son tarih geçti. |
DealerSale.AddPaymentPlan.PaymentDateMustBeAfterSaleBeginDate | Ödeme tarihi satışın başlama tarihinden sonra olmalıdır. |
DealerSale.AddPaymentPlan.PaymentDateMustBeBeforeSaleEndDate | Ödeme tarihi satışın bitiş tarihinden önce olmalıdır. |
EX | Beklenmeyen bir hata oluştu |
Başarısız Sonuç Örneği
{
"Data": null,
"ResultCode": "DealerSale.AddPaymentPlan. DealerSaleIsNotManualPlan",
"ResultMessage": "",
"Exception": null
}