? ?BrainTree就不多做介紹,直接主題
前提?
從自己服務器獲取 token , 獲取后轉化為BTAPIClient類型的key 后進行相關操作
1.ApplePay
? ? ?1,先按照正常的ApplePay來獲取相關的東西 直至- (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller
didAuthorizePayment:(PKPayment *)payment
completion:(void (^)(PKPaymentAuthorizationStatus status))completion;方法后
? ? ? 2這里需要將payment發送到BrainTree的服務器獲取nonce來進行扣款相關操作 發送到 BrainTree 的相關方法為:- (void)tokenizeApplePayPayment:(PKPayment *)payment completion:(void (^)(BTApplePayCardNonce *, NSError *))completionBlock;
? ? ? 3.然后將BrainTree的服務器獲取的nonce,以及amount 等相關數據發送至己方服務器進行扣款, 這里需要與服務器方協商好參數以及返回類型.
? ? ? 4.證書相關操作: 需要在 braintree 下載加密文件,關聯自己的 ApplePay 證書(ApplePay 證書的創建以及關聯自行百度)下載位置如下圖:
如此配置就可以說是成功了,(圖三中"蘋果商戶證書"處 有多個的時候我暫時還不是很清楚他的選擇方式,因為暫時我只用到了一個,有知道的朋友可以告知一下) ? ? ? ? ? ??
ApplePay 到這里可以說是已經配置完成,接下來需要注意的坑是支持地區以及銀行卡種類的問題,以及支付金額 ? 有問題的可以私信或者留言
2.信用卡付款
? ? ? ? ?這里我直接用的Drop-in UI (將里面的 paypalSDK 刪了 就只剩信用卡支付選項了 TUT)
? ? ? ? ?1.UI 以及調起方法如下圖
?共四個位置可以自己傳值,如圖所示,?
? ? 2.BTDropInViewController的 delegate 方法- (void)dropInViewController:(BTDropInViewController *)viewController didSucceedWithTokenization:(BTPaymentMethodNonce *)paymentMethodNonce; ?
? ? 3.將上個 delegate 方法返回的paymentMethodNonce.nonce ? 執行同 ApplePay 中第三部操作.
總結
(BrainTree 付款的主要思想為: 1.從服務器獲取token, 所有相關操作都會根據從服務器獲取的token來執行.? ? 2.所有的支付總的來說都是需要你獲取到payment_method_nonce才能進行扣款. 3.獲取到payment_method_nonce后發送給服務器就好了 )
需要注意的幣種,地區,交易金額可能會導致生產情況下交易失敗