有什么方法可以检测插入式 braintree.js 表单的提交点击吗?

Is there any way to detect a drop-in braintree.js form's submit click?

我正在使用 braintree.js 表单。我通过注册 onPaymentMethodReceived 回调,使用 ajax 提交它。到目前为止一切顺利,效果很好。

但是,在提交表单后,有两个步骤:首先将付款详细信息提交给 braintree 并进行验证(同时在表单上显示一个微调器),然后页面上的详细信息被匿名化,然后 onPaymentMethodReceived 回调触发一个随机数,我可以用它发送到我的服务器。

问题是我想在单击时禁用表单提交按钮,但是在其上注册 onClick 处理程序会导致 braintree 忽略单击。

我知道此时页面上可以看到客户的银行卡详细信息,但由于 iframe 来自不同的域以及我此时可以使用的任何潜在方法,我无论如何都无法获取它们无论如何,抓住我可以用 setInterval() 做的细节,所以我真的没有看到这方面的安全案例。

有什么方法可以检测点击这里吗?

完全披露:我在 Braintree 工作。如果您有任何其他问题,请随时联系 support

据我所知,您不能使用 Drop-In 跳到标记化过程的中间。听起来您希望为您的用户创建自定义体验 beyond the Drop-In use case

onPaymentMethodReceived 回调之后启用表单提交按钮是常见的 Drop-In 使用流程,但通过创建自定义集成,您可以直接 handle the client-side tokenization process 并用您需要的任何功能包装它:

var client = new braintree.api.Client({clientToken: "CLIENT-TOKEN-FROM-SERVER"});

client.tokenizeCard({
  number: "4111111111111111",
  expirationDate: "10/20"
}, function (err, nonce) {
  // Send nonce to your server
});