前言:因公司業(yè)務(wù)發(fā)展,APP需要集成paytm支付,近期 paytm 的 SDK 也做了一版更新,集成新 SDK 遇到的一些問題記錄下來
paytm文檔: https://developer.paytm.com/docs/all-in-one-sdk/
GitHub: https://github.com/paytm/Paytm_iOS_All_in_One_SDK
1.沒有說明自動(dòng)導(dǎo)入的方式,只能手動(dòng)導(dǎo)入了
github 下載完將AppInvokeSDK.framework文件拖入項(xiàng)目
2.編譯運(yùn)行報(bào)錯(cuò):
dyld: Library not loaded: @rpath/AppInvokeSDK.framework/AppInvokeSDK
Referenced from: /private/var/containers/Bundle/Application/7F89BE48-4F64-4C92-856C-35C391C8C18B/XXXX.app
Reason: image not found
運(yùn)行報(bào)錯(cuò)
2.1
改完成功運(yùn)行
3.新版 SDK 調(diào)用也比較簡(jiǎn)潔了
先說一下 openPaytm方法的幾個(gè)參數(shù):
merchantId: 之前的 MID,就是開發(fā)者賬號(hào)申請(qǐng)的id,有測(cè)試和生產(chǎn)環(huán)境
orderId:訂單 id(后臺(tái)返回)
txnToken: token (后臺(tái)返回)
amount: 金額(最好用后臺(tái)返回的)
callback_url: 回調(diào)地址 (后臺(tái)返回)
delegate: 代理對(duì)象
environment: AIEnvironment枚舉類型,生產(chǎn)和測(cè)試兩種
按照文檔說明操作正常調(diào)起 paytm 支付,但支付完之后沒有狀態(tài)回調(diào),
檢查完之后發(fā)現(xiàn)是因?yàn)?/span>
AIHandler().openPaytm(merchantId: merchantId, orderId: orderId, txnToken: token, amount: amount, callbackUrl : callback_url, delegate: self)
控制器沒有引用 AIHandler對(duì)象
let paytmHandler = AIHandler()
extension MemberRenewController:AIDelegate{
func beginPayment(params:[String:String]) {
var MID = "測(cè)試 MID"
var environment = AIEnvironment.staging
if isDistribute {
MID = "生產(chǎn)MID"
environment = AIEnvironment.production
}
if let orderId = params["ORDER_ID"],let txnToken = params["TXN_TOKEN"],let amount = params["TXN_AMOUNT"],let callbackUrl = params["CALLBACK_URL"]{
paytmHandler.openPaytm(merchantId: MID, orderId:orderId, txnToken:txnToken, amount:amount, callbackUrl:callbackUrl,delegate: self, environment: environment)
}
}
@objc func openPaymentWebVC(_ controller: UIViewController?){
if let vc = controller {
DispatchQueue.main.async {[weak self] in
self?.present(vc, animated: true, completion: nil)
}
}
}
@objc func didFinish(with status: AppInvokeSDK.AIPaymentStatus, response: [String : Any]){
}
}
至此 paytm 支付就集成完畢了,新 SDK 還是比之前的簡(jiǎn)潔,之前 swift 版本 pod 導(dǎo)入一直報(bào)錯(cuò)又找不到原因最后被迫集成了 OC 的包