首页 > 解决方案 > Razorpay 签名和订单 ID 未进入 onPaymentSuccess 的成功方法

问题描述

在 Razorpay 的测试和直播模式中,我只获得payment_id了成功的方法。我无法获得razorpay_signatureand razorpay_order_id

我已经使用RazorpayPaymentCompletionProtocolWithData委托来获得我的结果。

这是我的代码:

extension ViewController: RazorpayPaymentCompletionProtocolWithData  {

func openRazorpayCheckout(){
    //Register RazorpayTestKey
    razorpay = RazorpayCheckout.initWithKey(kRazorpayLiveKey, andDelegateWithData: self)
    let options: [String:Any] = [
        "description": ServerConfig.shared.businessDescription!,
        "order_id": viewModel.model.orderID!,
        "image": ServerConfig.shared.businessImage!,
        "name": ServerConfig.shared.businessName!,
        "prefill": [
            "contact": LoggedInUser.shared.phoneNumber!,
            "email": LoggedInUser.shared.email!
        ]
    ]
    
    if let rzp = razorpay {
        rzp.open(options)
    } else {
        print("Unable to initialize")
    }
}

func onPaymentError(_ code: Int32, description str: String, andData response: [AnyHashable : Any]?) {
    _ = response!["razorpay_payment_id"]
    _ = response!["razorpay_order_id"]
    _ = response!["razorpay_signature"]
}

func onPaymentSuccess(_ payment_id: String, andData response: [AnyHashable : Any]?) {
    _ = response!["razorpay_payment_id"]
    _ = response!["razorpay_order_id"]
    _ = response!["razorpay_signature"]
}
}

标签: iosobjective-cswiftrazorpay

解决方案


如果您没有得到签名,则意味着您的订单 ID 可能是错误的,请交叉检查您的订单 ID。我在android中犯了同样的错误。我没有传递导致空签名的订单 ID。


推荐阅读