Отправка платежной формы Braintree будет перехвачена AngularJS

В простом раскрывающемся пользовательском интерфейсе javascript при отправке формы , braintree.js перехватит отправку формы и вставит в форму скрытое поле с именем «payment_method_nonce» до того, как отправка действительно отправится на сервер.

Однако при использовании AngularJS в качестве внешнего интерфейса я обычно не хочу, чтобы отправка формы напрямую направлялась на сервер, а затем выполнялась перезагрузка страницы. Вместо этого я хочу, чтобы моя функция AngularJS перехватывала и обрабатывала отправку формы (например, через ng-click или ng-submit), И при ее обработке ей нужно было получить и использовать значение «payment_method_nonce».

Я попробовал это, и он все еще может перехватить отправку формы. Однако похоже, что AngularJS перехватывает отправку формы ДО того, как это сделает braintree.js, и вставляет поле «payment_method_nonce».

Следовательно, мой код AngularJS, который отвечает на отправку формы, не может получить это поле «payment_method_nonce» и выполнить соответствующую обработку. Любые предложения о том, как я могу обойти это?

Спасибо!


person XIN ZHANG    schedule 23.11.2014    source источник
comment
Прочитав дополнительную документацию по брейнтри, оказалось, что регистрация обратного вызова paymentMethodNonceReceived при настройке шлюза брейнтри — правильный путь!   -  person XIN ZHANG    schedule 23.11.2014
comment
Я работаю в Брейнтри. Рад, что ты это понял! Вы должны опубликовать это как ответ - совершенно нормально ответить на свой вопрос.   -  person agf    schedule 24.11.2014
comment
Не могли бы вы предоставить пример кода для этого, потому что я указал paymentMethodNonceReceived и не могу получить обратный вызов   -  person Sandeep Taneja    schedule 26.01.2015


Ответы (1)


Прочитав дополнительную документацию по брейнтри, оказалось, что регистрация обратного вызова paymentMethodNonceReceived при настройке шлюза брейнтри — правильный путь!

person XIN ZHANG    schedule 25.11.2014
comment
Обратите внимание, что эта функция была заменена на onPaymentMethodReceived, однако способ ее использования и результирующее поведение остались прежними. См. developers.braintreepayments.com/guides/client-sdk/javascript/ - person Boris; 17.12.2015
comment
Не могли бы вы опубликовать свой пример кода и показать, как вы это сделали? Возникла та же проблема с использованием angular - person iTenzo; 06.06.2016