首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS与Payfort集成问题

iOS与Payfort集成问题
EN

Stack Overflow用户
提问于 2019-07-21 18:35:32
回答 1查看 1.1K关注 0票数 0

我正在开发一个iOS应用程序,它有一个支付服务。然而,我在payfort集成中遇到了一个问题。

我已经关注了他们的网站上提供的文档:https://docs.payfort.com/pdf/FORT_Mobile-SDK_iOS_Integration_Guide_v_3.3.pdf

在第21页中,他们提到"token_name“是一个可选参数see picture。然而,在我完成文档并运行我的应用程序后,我得到了这个错误:"Token name I not exist“。

有人能帮我解决我的问题吗?

下面是我的代码:

让payFort =PayFortController.init(环境: KPayFortEnviromentSandBox)

代码语言:javascript
复制
    // Set Dictionary contain all keys and values for SDK
    let request = NSMutableDictionary.init()
    request.setValue("2", forKey: "amount")
    request.setValue("PURCHASE", forKey: "command")
    request.setValue("SAR", forKey: "currency")
    request.setValue("********b@gmail.com", forKey: "customer_email")
    request.setValue("en", forKey: "language")
    request.setValue("XYZ92********", forKey: "merchant_reference")
    request.setValue("8DEBDC6BBB84354***********" , forKey: "sdk_token")


    // Call PayFort and response callback
    payFort?.callPayFort(withRequest: request, currentViewController: self,
      success: { (requestDic, responeDic) in
            print("success")
    },canceled: { (requestDic, responeDic) in
        print("canceled")
    },
      faild: { (requestDic, responeDic, message) in
        print("faildddd")
    })

    payFort?.callPayFort(withRequest: request, currentViewController: self,
                        success: { (requestDic, responeDic) in
                            print("success")
                            print("responeDic=\(responeDic)")
                            print("responeDic=\(responeDic)")
    },canceled: { (requestDic, responeDic) in
        print("canceled")
        print("requestDic=\(requestDic)")
        print("responeDic=\(responeDic)")
    },
      faild: { (requestDic, responeDic, message) in
        print("faiiild")
        print("requestDic=\(requestDic)")
        print("responeDic=\(responeDic)")
        print("message=\(message)")
    })
    payFort!.isShowResponsePage = true
    payFort!.hideLoading = true

注意:我曾尝试添加token_name参数并随机选择一个名称,但不起作用

EN

回答 1

Stack Overflow用户

发布于 2019-07-21 19:20:44

尝尝这个

代码语言:javascript
复制
func connectPaymentGateway(token:String){

    let currentTime = Int64(Date().timeIntervalSince1970 * 1000)
    let merchant_reference = "12586" + "_" + String(format: "%0.2d", currentTime)

    let request = NSMutableDictionary.init()
    request.setValue(totalAmount * 100 , forKey: "amount")
    request.setValue("AUTHORIZATION", forKey: "command")
    request.setValue("AED", forKey: "currency")
    request.setValue("email@gmail.com", forKey: "customer_email")
    request.setValue("en", forKey: "language")
    request.setValue(merchant_reference, forKey: "merchant_reference")
    request.setValue(token , forKey: "sdk_token")
    request.setValue("8A70320AF209" , forKey: "token_name")
    request.setValue("VISA" , forKey: "payment_option")

    OperationQueue.main.addOperation {

        self.payFort?.callPayFort(withRequest: request, currentViewController: self,
                                  success: { (requestDic, responeDic) in

                                    print("success")
                                    print("responeDic=\(String(describing: responeDic))")

                                    let payResponse:PayfortResponse = self.getBookingByResponse(responeDic! as NSDictionary)
                                    print(payResponse)

                                    print(payResponse.response_message as Any)

                                    if payResponse.response_message == "Success" {

                                        print("Payment Success")



                                    }

        },canceled: { (requestDic, responeDic) in
            print("canceled")
            print("responeDic=\(String(describing: responeDic))")
            self.navigationController?.popToRootViewController(animated: true)
        },faild: { (requestDic, responeDic, message) in
            print("faild")
            print("responeDic=\(String(describing: responeDic))")
            print("message=\(String(describing: message))")
            var msgStr = "Please try again later"
            if let msgString = message {
                msgStr = "\(msgString)\n\(msgStr)"
            }
            let alert = UIAlertController(title: "Payment Failed", message: msgStr, preferredStyle: UIAlertController.Style.alert)
            alert.addAction(UIAlertAction(title: "OK", style: UIAlertAction.Style.default, handler: { action in

                self.navigationController?.popToRootViewController(animated: true)

            }))
            self.present(alert, animated: true, completion: nil)

        })
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57132355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档