【问题标题】:How to get the failure response on clicking Razorpay payment failure button?如何获得点击 Razorpay 支付失败按钮的失败响应?
【发布时间】:2021-05-11 06:31:37
【问题描述】:

我正在使用 Razorpay 测试模式将我正在使用的代码集成到我的网站中 我可以在单击成功按钮时控制数据,但我也想在失败时控制数据,因为我需要更新我在数据库中的状态列。那么我该怎么做呢?下面是我迄今为止尝试过的?

$.ajax({
    url:'details-action.php?form-product-test',
    type:'post',
    data:new FormData(this),
    contentType:false,
    processData:false,
    success:function(result_data){
        if(result_data == 'success'){
            var options = {
                "key": "key", 
                "amount": amt1*100, 
                "currency": "INR",
                "name": "Test",
                "description": "Order Details",
                "image": "",
                "handler": function (response){
                    var payment_id = response.razorpay_payment_id;
                    console.log(response);
                    $.ajax({
                        type:'post',
                        url:'form-action.php?paymentsucc',
                        data:{payment_id:payment_id},
                        success:function(result){
                            console.log(result);
                            alert('Your order is successfully done');
                        }
                    });
                }
            };
            var rzp1 = new Razorpay(options);
            rzp1.open();
        } else {
            alert(result_data);
        }
    },
    error:function(result_data){}
});

因此,当我获得成功时,一切正常,并且我获得了 razorpay_payment_id。当出现故障或客户单击故障按钮时,我想运行另一个 ajax,以便我可以更新到我的数据库,但问题是我没有得到 razorpay_payment_id 或 console.log 没有显示任何内容。

【问题讨论】:

    标签: javascript php jquery razorpay


    【解决方案1】:

    只需将您的 ajax 更改为这样的东西来捕获错误

    $.ajax({
        type:'post',
        url:'form-action.php?paymentsucc',
        data:{payment_id:payment_id},
        success: function(result) {
        console.log(result);
            alert('Your order is successfully done');
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) { 
            alert("Status: " + textStatus);
            alert("Error: " + errorThrown); 
        } 
    });
    

    【讨论】:

      【解决方案2】:

      你可以试试这个我想你是问这个的,或者你可以点击这个链接了解更多https://razorpay.com/docs/payment-gateway/web-integration/standard/

      var rzp1 = new Razorpay(options);
      rzp1.on('payment.failed', function (response){
              alert(response.error.code);
              alert(response.error.description);
              alert(response.error.source);
              alert(response.error.step);
              alert(response.error.reason);
              alert(response.error.metadata.order_id);
              alert(response.error.metadata.payment_id);
      });
      document.getElementById('form-submit').onclick = function(e){
          rzp1.open();
          e.preventDefault();
      }

      【讨论】:

        猜你喜欢
        • 2018-12-22
        • 2014-04-26
        • 2022-11-01
        • 2021-06-25
        • 2017-04-14
        • 2013-01-19
        • 2017-08-16
        • 2022-06-22
        • 2017-08-06
        相关资源
        最近更新 更多