当前位置: 首页 > 知识库问答 >
问题:

CFSDK支付网关'请求中发送的无效令牌'

曹泉
2023-03-14

我正在开发一款应用程序,需要集成支付网关,并根据需要使用无现金支付网关WebView Checkout选项。从他们的文档中很容易实现。以下是我启动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项目中,并将其添加嵌入式二进制文件中。使用orderId从后端生成的令牌,需要在支付参数中传递它。

问题1:每次我启动SDK时,它都会给我错误:“请求中发送的无效令牌”,并在委托方法中打印以下结果:

完成导航到urlhttps://test.cashfree.com/billpay/checkout/post/submitJSON值:{"orderId":""""","引用Id":""","orderAmount":"","txMsg":"在请求中发送的无效令牌","txTime":","tx状态":"FAILED","PaymentMode":","签名":""}

以下是供参考的屏幕截图。

问题2:由于我通过嵌入UINavigationController来展示SDK,所以当我按下后退按钮时,它无法自行关闭。

由于无法解决的错误(无效令牌),我连续数周都在绞尽脑汁。所以这里有人试过了,请看看是怎么回事?期待SO的解决方案。

附言:我试着联系他们的技术支持,每次他们只是发送链接到他们的文档。


共有1个答案

庄康胜
2023-03-14

我使用Xcode 11.0编写了无现金SDK的演示项目

第一步

为了生成代币,我在邮递员中使用了

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

第二步

现在是代码

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"
           ]
       }

这里没有任何变化,只是使用了测试环境并传递了appid和令牌

笔记:

  1. 确保您正在使用TEST环境URL生成带有TEST环境客户端id和客户端机密的令牌
  2. 也检查通知Url
  3. 订单ID应该相同
  4. 确保您没有使用旧的或过期的令牌

问题2:不必费心演示,只需按下此控制器:)

干杯!!:)

 类似资料:
  • 我很高兴。Android中的网络支付网关。 但在上面的sdk中,我并没有传递大量的加密传输。有谁能帮我在授权的情况下进行简单的支付交易吗。net android。 提前感谢。

  • 概述 我将使用API网关作为基于Spring Security性的身份验证。我刚刚按照https://spring.io/guides/tutorials/spring-security-and-angular-js/链接中的步骤创建了一个基于其对应的github项目的“对双”模块的项目https://github.com/spring-guides/tut-spring-security-and

  • 我在和授权的人一起工作。ios中的net Payment gateway如何创建交易请求? 我已经从这里集成了SDK。https://github.com/AuthorizeNet/accept-sdk-ios Token正在获得成功。 但是我不明白如何用传递的金额和项目进行交易。(我的意思是如何付款?)对此有任何请求网址或方法吗? 请给我这里的指南。

  • 发送请求 发送同步请求 Web3j web3 = Web3j.build(new HttpService()); // defaults to http://localhost:8545/ Web3ClientVersion web3ClientVersion = web3.web3ClientVersion().send(); String clientVersion = web3Client

  • 主要内容:最受欢迎的支付网关提供商支付网关是一种在线支付处理技术,帮助企业接受信用卡和电子支票。 换句话说,支付网关是位于电子商务平台和客户之间的“中间人”(Manin-the-middle)。 支付网关允许 - 快速轻松地付款。 保持客户的数据(信息)和金钱的安全。 获得客户的信任,所以他们愿意交出钱。 要选择正确的支付网关,应遵循以下准则 - 应该确定您所在国家支持的支付网关,而不是全部在全球运营。 应该检查您的电子商务平台支

  • 请检查屏幕截图,这个问题是有时发生,有时工作良好。如果有语法错误请原谅