我正在使用在 Braintree 控制面板中配置的 Drop-in UI 来自动验证支付方式是否合法。
所以在我的应用程序中,我在单击表单提交按钮时禁用它,如果用户付款方式不合法,它会说有错误并且不会提交表单。我的问题是如何捕获此错误,以便我可以启用提交按钮。
onError 事件只有在输入字段中没有出现所有字段时才会被抛出。那么验证错误呢,我该如何捕捉呢?
现在我的 javascript 看起来像这样:
braintree.setup("#{@braintree_token}", 'dropin', {
container: 'dropin',
onReady: function () {
},
onError: function() {
console.log("error");
$('#submit-payment').removeClass('disabled');
}
});
$("form").submit(function (e) {
$('#submit-payment').addClass('disabled');
setTimeout(function() { $('#submit-payment').removeClass('disabled'); }, 2000);
return;
});
我的解决方案目前并不理想,因为它只会禁用按钮 2 秒。所以请给我一些建议。
附言我还发现它会回调此信息:
/**/callback_jsond435f0d591e44176bf94ec137859dd3c({"error":{"message":"Credit card verification failed"},"fieldErrors":[{"field":"creditCard","fieldErrors":[{"field":"cvv","code":"81736","message":"CVV verification failed"}]}],"status":422})
最佳答案
我知道我有点晚了,但我会把它放在这里,也许它会对查看此线程的人有所帮助。
从当前版本(Braintree JavaScript SDK v2)开始,onError 事件实际上会触发卡验证错误。默认行为是禁用信用卡信息框并放置 OP 在上面显示的错误消息。
将错误响应作为参数传递给 onError 函数将使您能够确定已抛出的错误类型、查看消息并执行一些自定义处理。例如,如果您想提醒错误消息,代码可能如下所示:
braintree.setup("braintree_token", 'dropin', {
container: 'container',
onError: onError
});
function onError(err) {
var errorType = err.type;//access the error type via err.type
var errorMessage = err.message; //access the error message via err
//do something helpful for the user via the combination of these two parameters
alert('Braintree returned an error of type: ' + errorType + 'with message' + errorMessage);
}
文档链接(很难找到,因为它嵌套在 Drop-In 页面中):https://developers.braintreepayments.com/guides/drop-in/javascript/v2#onerror
关于javascript - 关于验证错误的 Braintree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31827521/