关于验证错误的Braintree

时间:2015-08-05 08:42:12

标签: 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秒。所以请给我一些建议。

P.S。要清楚我想抓住Javascript这种错误: enter image description here

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})

enter image description here

2 个答案:

答案 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