- Multipay’i proje içerisinde kullanmaya başlamak
- Gönderilecek Parametreler
- Protocol Delegate Fonksiyonları
Multipay’i proje içerisinde kullanmaya başlamak
Multipay’i projenizde kullanmaya başlamak için aşağıdaki kod örneğini kullanabilirsiniz.
-
import Multipay override func viewDidLoad() { super.viewDidLoad() Multipay.start(vcToPresent: YOUR_VIEW_CONTROLLER_TO_PRESENT, appToken: "YOUR_APP_TOKEN", referenceNumber: "USER_REFERENCE_NUMBER", delegate: self, languageCode: "tr", apiType: APIType.test, testMode: false, walletToken: "USER_SELECTED_WALLET_TOKEN", obfuscationSalt: "YOUR_OBFUSCATION_SALT", userPreset: USER_PRESET_MODEL_FOR_REGISTRATION) }
-
#import "Multipay-Swift.h" [Multipay start: YOUR_VIEW_CONTROLLER_TO_PRESENT, appToken:@"YOUR_APP_TOKEN", referenceNumber:@"USER_REFERENCE_NUMBER", delegate:self, languageCode:@"tr", apiType:APIType.test, walletToken:@"USER_SELECTED_WALLET_TOKEN", obfuscationSalt:@"YOUR_OBFUSCATION_SALT", userPreset: USER_PRESET_MODEL_FOR_REGISTRATION) ];
Yukardaki kod örneğini çalıştırdığınız zaman kullanıcı sdk’nın ekranlarına yönlendirilir. walletToken parametresine bakılarak login ekranı veya cüzdan seçme ekranları kullanıcıya gösterilecektir. Kullanıcı, sdk ekranları üzerinden multinet hesabına giriş yaptıktan sonra cüzdanlarının listelendiği sayfaya yönlendirilir. Buradan kullanıcı yeni cüzdan ekleme işlemi yapabilir ya da varolan cüzdanını uygulama ile eşleştirebilir.
Cüzdan eşleştirme aksiyonu ile sdk ekranları kapanır ve uygulamaya eşleştirilen cüzdana ait bir token (walletToken) bilgisi MultipayDelegate protokol methodlarından multipaySelectedCardInfos kullanılarak dönülür.
Entegrasyonu yapacak uygulama bu walletToken bilgisini bir güvenli bir yerde saklamalıdır. Bu token cüzdan ile ilgili yapılan işlemlerin tamamında kullanılacaktır.
Cüzdan değiştirme işlemi için de yine start metodu kullanılacaktır. Fakat bu sefer metoda parametre olarak daha önceden seçilen cüzdanın token bilgisinin de walletToken parametresiyle gönderilmesi gerekmektedir.
Gönderilecek Parametreler
-
vcToPresent = Multipay’in present edileceği viewController’in referansını almaktadır
-
appToken = Bu parametre tarafınıza özel olarak iletilecektir.
-
referenceNumber = Kullanıcının kimliğini unique olarak sistemde tutmak için Multipay’i entegre eden uygulama tarafından üretilip gönderilmesi gerekmektedir.
-
delegate = SDK’de gerçekleşen olaylardan (events) haberdar olmanız için ‘MultipayDelegate’ protokolünü entegre etmeniz gereklidir
-
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.
-
apiType = Multipay’in kullanmasını istediğiniz ortamı belirlemek için kullanılmaktadır. Geçerli olan değerler aşağıdaki enum değerindeki gibidir.
-
enum APIType { case prod case pilot case test case dev }
-
testMode = Multipay’i herhangi bir ortama bağlanmadan ve network istekleri göndermeden dummy değerlerle çalıştırmak istediğiniz zaman ‘true’ olarak göndermeniz gereken parametredir. Diğer durumlarda ‘false’ olarak ayarlanmalıdır.
-
walletToken = Kullanıcı tarafından herhangi bir cüzdan eşleştirmesi yapıldıktan sonra seçili cüzdanın token’i tarafınıza multipaySelectedCardInfos delegate fonksiyonuyla dönülmektedir. Bu değeri saklamanız ve bir sonraki start fonksiyonunu çağırdığınızda göndermeniz gerekmektedir.
-
obfuscationSalt = Bu parametre tarafınıza özel olarak iletilecektir.
-
userPreset = Registration işlemi için otomatik doldurulmasını istediğiniz parametreleri SDK’da yer alan ‘UserPreset’ model objesini yarattıktan sonra bu parametre ile gönderebilirsiniz.
Protocol Delegate Fonksiyonları
delegate parametresine gönderdiğiniz objenin MultipayDelegate protokolüne uyması(conform etmesi) gerekmektedir. MultipayDelegate protokol methodları aşağıdaki gibidir.
-
@objc public protocol MultipayDelegate : class { //MARK: - WalletToken expire delegate methods @objc func walletTokenExpired(expiredWalletToken: String?) //MARK: - Card select-change-unselect operations result methods //Select or change wallet requests delegate method @objc func multipaySelectedCardInfos(cardBalance:String?, cardImageUrl: String?, cardName: String?, walletToken: String?, cardMaskedNumber: String?) //MARK: - UnselectWallet(Delete) requests delegate methods @objc func multipayUnselectCardSuccess() @objc func multipayUnselectCardFailed(resultCode:String?, resultMessage: String?) //MARK: - Single Wallet request delegate methods //Success @objc func multipaySingleWalletSuccess(cardBalance:String?, cardImageUrl: String?, cardName: String?, walletToken: String?, cardMaskedNumber: String?) //Fail @objc func multipaySingleWalletFailed(resultCode:String?, resultMessage: String?) //MARK: - Payment Delegates //Success @objc func multipayPaymentDidSucceed(sign: String?, transferServerRefNo: String?) //Fail @objc optional func multipayPaymentDidFail(error: Error?) }
walletTokenExpired protocol fonksiyonu start fonksiyonuna gönderdiğiniz walletToken parametresi geçersiz olduğu zaman çağırılmaktadır. Bu durumda sakladığınız walletToken değerini silmelisiniz. Diğer protocol fonksiyonları diğer kısımlarda açıklanacaktır.