JavaScript — Braintree — paymentMethodNonceReceived не вызывается

У меня есть настроенный интерфейс для Braintree. Я могу видеть пользовательский интерфейс в порядке. До этого я создал клиента и вижу его на песочнице braintree. Теперь я хочу добавить способ оплаты для клиента. Я пытаюсь следующий код, но paymentMethodNonceReceived не вызывается. Не уверен почему.

braintree.setup("<?=CLIENT_TOKEN_FROM_PHP?>",
"dropin",
{
container: "divBrainTreeContainer",
paymentMethodNonceReceived: function (event, nonce) {
console.log(nonce);
$('#formProfile').append('<input type="hidden" name="payment_method_nonce" value="'+nonce+'" />');
$('#formProfile').submit();
}
}
);

8

Решение

Я использую ниже JavaScript И его работает нормально:

  braintree.setup(clientToken, "custom", {
id: "my-sample-form",
hostedFields: {
number: {
selector: "#card-number"},
cvv: {
selector: "#cvv"},
expirationMonth: {
selector: "#expiration-month"},
expirationYear: {
selector: "#expiration-year"},
},onPaymentMethodReceived:function(nonce){
console.log(JSON.stringify(nonce));
return false;

}
}

);

Выше дает ниже ответ и не отправляет форму:

{"nonce":"ff2662e1-f1fd-42a3-a16f-d8f3213a2406","details":{"lastTwo":"11","cardType":"Visa"},"type":"CreditCard"}

значит использовать onPaymentMethodReceived вместо paymentMethodNonceReceived

Спасибо
http://www.web-technology-experts-notes.in/2015/06/braintree-payment-gateway-integration.html

7

Другие решения

Согласно комментарию @ kdetella, должно быть submit кнопка внутри <form> элемент для получения метода оплаты nonce.

5

https://github.com/braintree/braintree-web/issues/58

Для пользовательской интеграции с несколькими способами оплаты используйте onSuccess вместо onPaymentMethodReceived.

braintree.setup(TOKEN, 'custom', {
id: 'checkout',
paypal: {
container: 'paypal-container',
onSuccess: function (nonce, email) {
// This will be called as soon as the user completes the PayPal flow
// nonce:String
// email: String
}
},
onPaymentMethodReceived: function(obj) {
// This will be called when the user submits the form
}
});
2