美文网首页
iOS 集成 paytm 支付

iOS 集成 paytm 支付

作者: Double_kay | 来源:发表于2020-10-23 12:05 被阅读0次

    前言:因公司业务发展,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 的包

    相关文章

      网友评论

          本文标题:iOS 集成 paytm 支付

          本文链接:https://www.haomeiwen.com/subject/otfvmktx.html