Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在单击Razorpay支付失败按钮时获得失败响应?_Javascript_Php_Jquery_Razorpay - Fatal编程技术网

Javascript 如何在单击Razorpay支付失败按钮时获得失败响应?

Javascript 如何在单击Razorpay支付失败按钮时获得失败响应?,javascript,php,jquery,razorpay,Javascript,Php,Jquery,Razorpay,我正在使用Razorpay测试模式将我正在使用的代码集成到我的网站中。当我单击成功按钮时,我可以控制台数据,但当出现故障时,我也想控制台数据,因为我需要更新数据库中的状态列。那么,我如何才能做到这一点下面是我迄今为止尝试过的 $.ajax({ url:'details-action.php?form-product-test', type:'post', data:new FormData(this), contentType:false, process

我正在使用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没有显示任何东西。

只要将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); 
    } 
});

你可以试试这个,我想你是在要求这个,或者你可以通过这个链接了解更多

var rzp1=新Razorpay(选项);
rzp1.on('payment.failed',函数(响应){
警报(响应、错误、代码);
警报(响应、错误、描述);
警报(响应.错误.来源);
警报(响应.错误.步骤);
警报(响应、错误、原因);
警报(response.error.metadata.order\u id);
警报(响应.错误.元数据.付款id);
});
document.getElementById('form-submit')。onclick=function(e){
rzp1.open();
e、 预防默认值();

}
无任何更改