我正在开发一个需要集成支付网关的应用程序,我正在使用 Cashfree支付网关WebView Checkout
根据需要选择。从他们的docs 很容易实现.这就是我启动 SDK 的方式:
func initiateCFSDK() {
let cashfreeVC = CFViewController(params: getPaymentParams(), appId: self.appId, env: self.environmentCF, callBack: self)
let navVC = UINavigationController(rootViewController: cashfreeVC)
self.present(navVC, animated: true, completion: nil)
}
支付参数:
func getPaymentParams() -> Dictionary<String, String> {
return [
"orderId": self.orderId,
"tokenData" : self.paymentToken,
"orderAmount": self.paymentValue,
"customerName": "name",
"orderNote": "health prodcuts",
"orderCurrency": "INR",
"customerPhone": "9876543210",
"customerEmail": "abc@gmail.com",
"notifyUrl": "https://test.gocashfree.com/notify"
]
}
从他们的文档中,我们需要将框架拖放到 Xcode 项目并将其添加到
Embedded Binaries
.使用 orderId 从后端生成的 token ,需要在支付参数中传递。问题一:
每次我启动 SDK 时都会出现错误: “请求中发送的 token 无效”并在
delegate
中打印以下结果方法:Finished navigating to url https://test.cashfree.com/billpay/checkout/post/submit
JSON value : {"orderId":"","referenceId":"","orderAmount":"","txMsg":"Invalid token sent in request","txTime":"","txStatus":"FAILED","paymentMode":"","signature":""}
以下是截图供引用。
问题2:
由于我通过嵌入 UINavigationController 来呈现 SDK,因此当我按下后退按钮时,它无法自行关闭。
我因无法解决的错误(无效 token )而在数周后猛烈抨击。所以这里有人试过,请看看有什么问题?期待 SO 的解决方案。
P.S:我尝试联系他们的技术支持,每次他们只是发送链接到他们的文档。
最佳答案
我已经使用 Xcode 11.0 准备了带有 Cash Free SDK 的演示项目
步骤 1
要生成 token ,我在 postman 中使用过
https://test.cashfree.com/api/v2/cftoken/order
带参数
{
"orderId":"ORD123456",
"orderAmount":"30",
"orderCurrency":"INR"
}
带有以下标题
Content-Type:application/json
X-Client-Id:XXXXXXX
X-Client-Secret:XXXXXX
步骤 2
现在在代码中
func initiateCFSDK() {
let cashfreeVC = CFViewController(params: getPaymentParams(), appId: "xxxxxxxxxxx", env: "TEST", callBack: self)
self.navigationController?.pushViewController(cashfreeVC, animated: true)
}
func getPaymentParams() -> Dictionary<String, String> {
return [
"orderId": "ORD123456",
"tokenData" : "<<TOKEN FROM POSTMAN REQUEST>>",
"orderAmount": "30",
"customerName": "name",
"orderNote": "health prodcuts",
"orderCurrency": "INR",
"customerPhone": "9876543210",
"customerEmail": "abc@gmail.com",
"notifyUrl": "https://test.gocashfree.com/notify"
]
}
这里没有改变只是使用了 TEST 环境并传递了 appid 和 token
笔记:
问题 2:不要费心展示,只需插入这个 Controller :)
干杯!! :)
关于ios - CFSDK支付网关 'Invalid token sent in request',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60014935/