Servisin Kullanım Amacı
Multinet cüzdanı ile yapılan ödeme isteğine servisten cevap alınamadığı durumda (bağlantı kopması, uygulamanın kapanması vb.) ya da yapılan ödeme isteğini iptal etmek için kullanılan servistir.
Servis Çağrısı Yapılması
-
Multipay.callPaymentReversal(delegate: self, paymentAppToken: paymentAppToken, languageCode: "tr", requestId: requestId, sign: sign, merchantRefNo: merchantReferenceNumber, terminalRefNo: terminalReferenceNumber, rollbackReferenceNumber: rollbackReferenceNumber, reason: reason, // 2: Cancel 3: Reversal referenceNumberType: referenceNumberType, // 0: Client referenceNumber: referenceNumber, obfuscationSalt: "TEST-SALT" )
Metodun değişkenleri:
paymentAppToken : Bu parametre tarafınıza özel olarak iletilecektir.
languageCode : Multipay’in hangi dil ile gösterileceğini belirlemektedir ve şu anda sadece tr ve en parametreleri ve dolayısıyla ‘Türkçe’ ve ‘İngilizce’ dilleri desteklenmektedir.
requestId : Her ödeme geri alma isteği için unique olarak yaratılıp gönderilmesi gereken id değeri. Oluşturulması aşamasında unique bir değer olması dışında bir zorunluluk yoktur. Bu değer UUID v4 formatında olmalıdır.
Ödeme geri alma işlemi sonucunda, işlemin doğru olup olmadığı validasyonunun yapılabilmesi için bu değer tekrar kullanılacaktır.
sign : Ödeme geri alma sürecinin güvenliğinin sağlanması için oluşturulması gereken bir değişkendir.Bu değişkenin, entegrasyonu yapan uygulama tarafından yaratılıp gönderilmesi gerekmektedir. Bu değerin nasıl yaratılacağı entegrasyon aşamasında tarafınıza özel olarak iletilecektir.
merchantRefNo : Bu değer tarafınıza özel olarak iletilecektir. (Ödeme alma servisinde kullanılan merchantReferenceNumber değişkeni ile aynı değerde olacaktır)
terminalRefNo : Bu değer tarafınıza özel olarak iletilecektir. (Ödeme alma servisinde kullanılan terminalReferenceNumber değişkeni ile aynı değerde olacaktır)
rollbackReferenceNumber : Her ödeme geri alma isteğinde tarafınızca unique olarak yaratılıp gönderilmesi gerekmektedir.
reason : 2(Cancel), 3(Reversal) olmak üzere 2 çeşit değer alabilir.
referenceNumberType : 0(Client) değerini alır. Ödeme geri alma servis çağrısının client’ın oluşturduğu değer ile çalışmasını sağlar.
- referenceNumberType 0 ise Geri alma işlemi yapılacak ödemenin, ödeme alma servisinde (confirmPayment) kullanılmış olan transferReferenceNumber değeri girilmelidir.
referenceNumber : Bu alan bir önceki referenceNumberType parametresinin içeriğine göre değer alır.
obfuscationSalt : Bu değer tarafınıza özel olarak iletilecektir.
Servis Cevabının Alınması
Bu fonksiyonu çağırdığınız zaman işlemin başarılı/başarısız olma durumuna göre aşağıdaki delegate methodlarından dönüş yapılmaktadır.
-
//Success func multipayRollbackWithSignDidSucceed(sign: String?, rollbackServerReferenceNumber: String?) //Fail func multipayRollbackWithSignDidFail(error: ErrorModel?)
Burada ödemenin doğruluğunu kontrol etmek için bir validasyon yapmak gerekmektedir. Validasyon başarılı bir şekilde sonuçlanırsa ödeme geri alma işleminin gerçekleşmiş olduğu anlaşılmaktadır.
Not : Validasyon detayları entegrasyon aşamasında tarafınıza özel olarak iletilecektir.