У меня есть следующие HTML:Брэйнтрите оплатой nodejs не работает
<form id="payment-form" method="post" submit="/checkout">
<input type="submit" value="Pay $10">
<input type="hidden" name="payment_method_nonce" value="0fgg1679-75e2-43e0-bc1f-94faee177877">
<iframe src="https://assets.braintreegateway.com/dropin/2.28.0/inline-frame.html#3a713953-3106-4fd5-8714-b0ada1723284" frameborder="0" allowtransparency="true" scrolling="no" name="braintree-dropin-frame" width="100%" height="68" id="braintree-dropin-frame" style="transition: height 210ms cubic-bezier(0.39, 0.575, 0.565, 1); border: 0px; z-index: 9999; height: 70px;"></iframe>
</form>
HTML, изначально была только input type=submit
и payment-form
, но мой Javascript имеет следующий код, который преобразует элементы в том, что мы видели выше:
braintree.setup(BT_CLIENT_TOKEN, "dropin", {
container: "payment-form"
});
BT_CLIENT_TOKEN успешно создан на стороне сервера на стороне клиента. Когда я открываю сайт, я могу войти в песочнице и видим следующее:
Когда я нажимаю «платить», однако, форма не будет представлен через мой app.post("/checkout")
на стороне nodejs сервера, но вместо того, чтобы через маршрут по умолчанию app.post("/")
. Кроме того, тело запроса всегда приходит пустым req.body: {}
(и не должно, насколько я знаю, должно приходить с nounce как минимум).
Есть ли у кого-нибудь идеи о том, что происходит? Большое спасибо.
Helo Shea, вы правы, действительно, это было действие, я заметил, что почти после публикации этого вопроса! :) Однако, я столкнулся с другой проблемой. Я изменил идентификатор формы, в который вводился набор символов, и по какой-то причине после входа в мозговое дерево не генерируется nonce (в то время как оно использовалось в примере выше). Есть идеи по этому поводу? Tyvm! – Fane
Привет, Fane. Пожалуйста, не стесняйтесь обращаться в Braintree Support для последующих вопросов: https://support.braintreepayments.com/. – Shea