#express #stripe-payments
#экспресс #stripe-платежи
Вопрос:
Я пытаюсь использовать предварительно созданную страницу оформления заказа Stripe для получения платежных реквизитов пользователя, следующих этой документации.
Я думаю, что я правильно написал код, но почему-то мое приложение не перенаправляет пользователя на страницу оформления заказа Stripe. Мой код выглядит следующим образом:
В моем бэкэнде Express:
router.get("/create-check-out", async (req, res, next) => {
const session = await stripe.checkout.sessions.create({
payment_method_types: ['card'],
mode: 'setup',
customer: req.body.id,
success_url: 'http://localhost:5000/ll_profile?session_id={CHECKOUT_SESSION_ID}',
cancel_url: 'http://localhost:5000/ll_profile',
});
res.send (session.id);
});
На моей стороне клиента JavaScript:
$.get("/create-check-out", { id: stripe_customer_id}, async (sessionId) => {
console.log(sessionId)
stripe.redirectToCheckout({
sessionId: sessionId,
name: "Yugue"
}).then(function(result) {
console.log(result)
});
В журнале консоли не отображается sessionId
nor result
.
Проблема в том, что после отправки запроса get веб-URL становится: http://localhost:5000/ll_profile?name=
from http://localhost:5000/ll_profile
(URL, под которым находятся все приведенные выше коды), и приложение застревает на той же странице без каких-либо действий по перенаправлению. Я думал, что он должен перенаправлять на встроенную страницу оформления заказа Stripe следующим образом:
Что я сделал не так?
Ответ №1:
Скорее всего, у вас есть кнопка внутри <form>
элемента, и существует конкуренция между перенаправлением оформления заказа и действием отправки формы. Вы должны либо не использовать форму, либо иным образом убедиться, что используется обработчик кликов, связанный с оформлением preventDefault()
заказа.
Если это не так, пожалуйста, предоставьте больше контекста вашей структуры DOM и обработчика кликов.
Комментарии:
1. о да, это то, что я сделал неправильно. Действительно, он находится внутри элемента <form> . Большое тебе спасибо, Брендан Мур, ты спаситель!!