Я использую торговую площадку Braintree в Песочнице, и у меня есть проблема/вопрос.
Я использую идентификатор клиента при генерации client_token, сохраняя payment_nonce в своей базе данных и используя его позже (через 3-4 минуты) для отправки_объекта. Проблема в том, что для каждой транзакции требуется уникальное значение nonce, но если я отправлю пользовательский интерфейс Dropin дважды в 2-3 минуты, я получаю одинаковое значение nonce, а вторая транзакция не выполняется с ошибкой: нельзя использовать методы оплаты nonce более одного раза. Есть ли способ гарантировать, что я получаю уникальные nonce? спасибоDuplicate nonce в BrainTree с помощью Dropin UI
ответ
Вместо того, чтобы создать еще одну сделку с тем же одноразовым номером, попробуйте отправить оригинальную транзакцию для расчета с использованием transaction.submit_for_settlement
метод оплаты одноразовых номеров один раз использовать. Чтобы ссылаться на один и тот же родительский метод несколько раз в интеграции на стороне сервера, вы можете создать маркер метода оплаты в хранилище.
В общем, вы никогда не должны хранить способ оплаты nonce в базе данных, так как они недолговечны и одноразовые.
https://developers.braintreepayments.com/ios+ruby/reference/request/transaction/submit-for-settlement https://developers.braintreepayments.com/ios+ruby/start/vault
Если вы следуете все по книге, и вы все равно получите эту ошибку спорадически, то, скорее всего, потому что пользователи кликают форма кнопки отправки несколько раз без обновления. Это приведет к правильной проверке первого представления, но вы получите эту ошибку во второй форме submit (которая приходит через миллисекунды позже, используя тот же самый nonce, что и первый submit).
Отказ от формы отправки кнопки после первого щелчка решил ее для меня (см. here).
- 1. Скрытие кнопки Paypal от dropin от Braintree ui
- 2. Brainree dropin form issue - nonce string не создается
- 3. Braintree dropin move paypal кнопка внизу?
- 4. Braintree dropin UI: проверить пользовательские поля платежного адреса перед отправкой формы
- 5. BrainTree Hosted Fields onPaymentMethodReceived функция не работает return nonce
- 6. Braintree - paymentMethodNonceReceived не был вызван
- 7. Как изменить нормальную форму, связанную с активным торговцем, с Braintree dropin-ui?
- 8. Конфигурация BrainTree PayPal не работает с интеграцией dropin
- 9. Какова длина способа оплаты Braintree nonce string?
- 10. Braintree- Как обновить drop-in ui?
- 11. Braintree v2 получение nonce с сообщением назад на сервер
- 12. Функция вызова внутри onPaymentMethodReceived (obj) метод Braintree
- 13. ruby on rails braintree fail on duplicate payment method
- 14. API-интерфейс Braintree: как я могу определить, какой метод payment_method связан с моим nonce?
- 15. Как сгенерировать токен клиента #Braintree для пользовательского интерфейса dropin для нового клиента
- 16. Неизвестный paymentMethodNonce на Braintree
- 17. Duplicate jquery ui problem
- 18. Как получить nonce из SD-файла Braintree iO SDK
- 19. Передача Braintree nonce to ruby on rails controller
- 20. Пользовательский интерфейс Braintree Dropin не работает с Ionic Framework, если не обновляется сила
- 21. Braintree Drop-in UI - отправить форму с помощью AJAX
- 22. Как получить значение nonce из braintree с помощью C# и asp.net
- 23. Программируемая отправка с помощью Braintree Custom Form
- 24. Интеграция с Braintree, в приложении JS
- 25. Неисправен токен CSRF Braintree
- 26. Как реализовать платежное приложение с Braintree в iOS
- 27. Braintree Drop In UI Полевая проверка
- 28. Реализовать с помощью braintree android
- 29. Интеграция с песочницей Braintree и интеграция с Paypal
- 30. Ошибка проверки подлинности клиента Braintree
Я только сохраняю nonce за одну транзакцию, и это работает нормально. Я обнаружил, что если я возьму того же пользователя через поток DropinUI для новой транзакции (вторая отдельная независимая транзакция) через определенное время вместо того, чтобы получать новое и другое nonce, я получаю то же самое, что и nonce, и когда я иду и попытайтесь решить вторую, я получаю ошибку, упомянутую выше. Должен ли я не предполагать, что я получаю новый nonce каждый раз, когда я создаю форму платежа DropUI? – paolino
Исправить. Вы должны предположить, что nonce будет отличаться каждый раз, когда ваш запуск заходит. – mickeyreiss