Braintree插件,在处理时禁用提交按钮

Braintree drop-in, disable submit button while processing

本文关键字:提交 按钮 处理 插件 Braintree      更新时间:2023-09-26

我试图做一些看似简单的事情,但我无法让它发挥作用。我正在使用Braintree dropin UI,我有提交按钮。我需要在处理时禁用按钮,我找不到一个好的事件来连接。

var ct = 'tokenhere';
var bt = braintree.setup(ct, 'dropin', {
  container: 'braintreedropin',
});
<form id="PayByBrainTreeCheckout" method="post">
  <div id="braintreedropin"></div>       
  <input type="submit" value="Pay">                          
</form>

我尝试了$('#PayByBrainTreeCheckout').submit(function(){/*disable button*/}),但如果表单中存在验证错误,这也会禁用按钮。

有什么想法吗?感谢

我也在Braintree工作。在提交交易时,客户可以点击提交按钮两次,这是正确的,但你不必担心客户会被收取两次费用,因为第二次交易会失败(信用卡生成的随机数只能使用一次)。此外,提交后表单上的即时视觉反馈旨在让客户知道他们的按键正在处理中。

如果您确实想做更复杂的事情(例如添加自定义回调以禁用提交按钮),我们的自定义集成是一个不错的选择。

正如Mat所提到的,请随时联系support@getbraintree.com如果您的集成需要进一步的帮助!

Braintree即将添加这样一个回调。以下是github问题:https://github.com/braintree/braintree-web/issues/38

会产生这样的结果:

braintree.setup(TOKEN, 'dropin', {
    container: 'my-container',
    onError: function (payload) {
        if (payload.type === 'validation:failed') {
            // re-enable button
        }
    }
});

我做了一个如何在WebForms中使用Braintree的工作示例。

https://github.com/StavrosD/BrainTree-PayPal-DotNet

我在README.md上描述了工作流程。