我正在使用在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秒。所以请给我一些建议。
P.S.S。我也发现它回调了这个信息:
/**/callback_jsond435f0d591e44176bf94ec137859dd3c({"error":{"message":"Credit card verification failed"},"fieldErrors":[{"field":"creditCard","fieldErrors":[{"field":"cvv","code":"81736","message":"CVV verification failed"}]}],"status":422})
答案 0 :(得分:0)
我是Braintree的开发人员。目前,Drop-in onError
回调不会捕获那些类型的服务器端验证错误。
如果您仍在努力,我建议您通过support@braintreepayments.com与我们的支持团队联系。他们将能够为您提供更具体的整合功能。
答案 1 :(得分:0)
我知道我有点迟到了,但我会把它放在这里,也许它会帮助有人看这个帖子。
截至当前版本(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