javascript - 关于验证错误的 Braintree

标签 javascript jquery braintree braintree-rails

我正在使用在 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 秒。所以请给我一些建议。

附言明确地说,我想用 Javascript 捕获这种错误: enter image description here

附言我还发现它会回调此信息:

/**/callback_jsond435f0d591e44176bf94ec137859dd3c({"error":{"message":"Credit card verification failed"},"fieldErrors":[{"field":"creditCard","fieldErrors":[{"field":"cvv","code":"81736","message":"CVV verification failed"}]}],"status":422})

enter image description here

最佳答案

我知道我有点晚了,但我会把它放在这里,也许它会对查看此线程的人有所帮助。

从当前版本(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/

相关文章:

javascript - 这个内部函数

javascript html url加载问题

python - 在 Django-Oscar 中通过 Paypal 处理付款

javascript - Brain DropIn UI 显示错误 "Cannot read property "渲染“未定义”

react-native - 在 Android Pay 流程 (getPaymentToken) 之后,支付 token 变得未定义

javascript - 循环数组并在标签后创建表单输入标签

javascript - 如何在一个 PDF 文件中导出两个数据表

javascript - 谷歌地图(v3)信息窗口一直在同一个标​​记上打开

javascript - Jquery 使用同一按钮打开和关闭

javascript - 捕获JavaScript事件 "silently"