5

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

PS要清楚我想用Javascript捕捉这种错误: 在此处输入图像描述

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

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

在此处输入图像描述

4

2 回答 2

2

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

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

于 2016-12-13T21:29:19.230 回答
0

我是 Braintree 的开发人员。目前 Drop-inonError回调不会捕获这些类型的服务器端验证错误。

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

于 2015-08-12T23:08:31.030 回答