iOS 集成 paytm 支付

2020-10-23  本文已影响0人  Double_kay

前言:因公司业务发展,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.没有说明自动导入的方式,只能手动导入了
github 下载完将AppInvokeSDK.framework文件拖入项目
2.编译运行报错:
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

运行报错
2.1
1.png
2.png
改完成功运行

3.新版 SDK 调用也比较简洁了


paytm SDK调用.png

先说一下 openPaytm方法的几个参数:
merchantId: 之前的 MID,就是开发者账号申请的id,有测试和生产环境
orderId:订单 id(后台返回)
txnToken: token (后台返回)
amount: 金额(最好用后台返回的)
callback_url: 回调地址 (后台返回)
delegate: 代理对象
environment: AIEnvironment枚举类型,生产和测试两种

按照文档说明操作正常调起 paytm 支付,但支付完之后没有状态回调,
检查完之后发现是因为
AIHandler().openPaytm(merchantId: merchantId, orderId: orderId, txnToken: token, amount: amount, callbackUrl : callback_url, delegate: self)
控制器没有引用 AIHandler对象

let paytmHandler = AIHandler()
extension MemberRenewController:AIDelegate{
    func beginPayment(params:[String:String]) {
        var MID = "测试 MID"
        var environment = AIEnvironment.staging
        if isDistribute {
            MID = "生产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 还是比之前的简洁,之前 swift 版本 pod 导入一直报错又找不到原因最后被迫集成了 OC 的包

上一篇下一篇

猜你喜欢

热点阅读