角度控制器无法动态地检测Braintree支付随机数

Ell*_*ert 3 javascript braintree node.js express angularjs

Braintree的客户创建SDK系统在您点击提交后立即在表单中生成一个nonce输入字段.

<input name="payment_method_nonce" type="hidden" value="nonce-here">
Run Code Online (Sandbox Code Playgroud)

但是,使用Angular的ng模型输入识别系统,我无法检测到控制器中动态生成的输入.表单提交后,我正在我的控制器中执行一个函数.

<form id="checkout" id="checkout" ng-submit="processForm(formData)">
Run Code Online (Sandbox Code Playgroud)

如您所见,无法收集随机数的值并将其提交给脑树API命令,例如创建新用户的付款方式.

从控制器,数据将使用$ http提交给下面的braintree api命令.

gateway.customer.create({
creditCard: {
token: "creditCard123",
},
paymentMethodNonce: "nonce-from-the-client"
}, function (err, result) {
});
Run Code Online (Sandbox Code Playgroud)

我是以错误的方式来做这件事的吗?即使此应用程序是Angular/express,我是否应该使用纯节点进行解决方案?或者我应该使用jquery/angular在所述输入字段中植入ng模型?

kde*_*lla 6

我在SDK团队的Braintree工作.

您可以使用回调来侦听nonce,而不是将其自动写入DOM.

braintree.setup('CLIENT_TOKEN', 'dropin', {
    container: 'container',
    paymentMethodNonceReceived: function (event, nonce) {
      // Do something with the nonce here
    }
});
Run Code Online (Sandbox Code Playgroud)

这也会阻止表单自动代表您提交.您可以在此处阅读更多文档.如果您仍然遇到问题,请随时联系support@getbraintree.com.