Javascript 验证错误上的Braintree

Javascript 验证错误上的Braintree,javascript,jquery,braintree,braintree-rails,Javascript,Jquery,Braintree,Braintree Rails,我正在使用Drop-in UI,它在Braintree控制面板中配置,以自动验证付款方式是否合法 所以在我的应用程序中,当点击表单提交按钮时,我会禁用它,如果用户的付款方式不合法,它会说有错误,不会提交表单。我的问题是如何捕获此错误,以便启用“提交”按钮 仅当输入字段中不存在所有字段时,才会引发onError事件。那么验证错误呢,我如何捕捉它呢 现在,我的javascript如下所示: braintree.setup("#{@braintree_token}", 'dropin', { co

我正在使用Drop-in UI,它在Braintree控制面板中配置,以自动验证付款方式是否合法

所以在我的应用程序中,当点击表单提交按钮时,我会禁用它,如果用户的付款方式不合法,它会说有错误,不会提交表单。我的问题是如何捕获此错误,以便启用“提交”按钮

仅当输入字段中不存在所有字段时,才会引发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捕捉这种错误:

另外,我还发现它会回调此信息:

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

我是Braintree的开发人员。当前,
onError
回调中的下拉菜单将不会捕获这些类型的服务器端验证错误


如果您仍在挣扎,我建议您联系我们的支持团队support@braintreepayments.com. 他们将能够帮助您了解集成的更多细节。

我知道我做这件事有点晚了,但我将把它放在这里,也许它会帮助其他人查看此线程

在当前版本(Braintree JavaScript SDK v2)中,OneError事件实际上会触发卡验证错误。默认行为是禁用信用卡信息框,并将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);
}

链接到文档(有点难找到,因为它嵌套在下拉页面中):

有什么变化吗?:)这与您的文档中所说的“当卡号未通过服务器端验证时”发生的情况直接矛盾,
onError
捕获一些错误而不是其他错误是没有意义的。很遗憾文档处于如此糟糕的状态。现在有完全相同的问题吗?您是否有机会找到解决方法?@Etienne没有。一种方法是按照文档建议使用构建自己的表单。另一种方法是设法在我的屏幕截图中捕捉这个回调。请让我知道你是否成功的第二个。我与braintree联系,他们给了我一个解决办法,在我的情况下,这是可行的,但不确定你的。我们在设置中禁用信用卡验证,错误可能被服务器端实现捕获。