Я пытаюсь интегрировать платежи в мое веб-приложение с помощью Stripe Checkout. Я следовал инструкциям на их веб-сайте , и когда я звонил stripe.checkout.Session.create
, он перенаправлял меня на страницу оплаты https://checkout.stripe.com/pay/xxx, но никогда не загружался. Я прочитал сетевые запросы, используя Chrome F12, и я получаю эту информацию обратно.
{error: {message: "Недопустимый идентификатор страницы оплаты: test123", введите: "invalid_request_error"}}
Документация Stripe гласит, что id
должен быть включен при перенаправлении к оформлению заказа. Затем я просто установил временную строку с именем "test123"
, но, похоже, она не является действительной. Как бы я пошел дальше?
Мой текущий код (Python)
stripe.api_key = "sk_test_xxxxxxxxxxxxxx"
stripe.api_version = "2018-11-08; checkout_sessions_beta=v1"
stripe.checkout.Session.create(
success_url="https://mypage.com/success",
cancel_url="https://mypage.com/cancel",
payment_method_types=["card"],
client_reference_id="test123", #not sure if this one is needed
line_items=[
{
"amount": 2000,
"quantity": 2,
"name": "Blue banana",
"currency": "usd",
}
]
)
js код на моей html странице
<script src="https://js.stripe.com/v3/"></script>
<script>
var stripe = Stripe(
'pk_test_xxxxxxxxxxxx',
{
betas: ['checkout_beta_4']
}
);
</script>
<script>
stripe.redirectToCheckout({
sessionId: "test123",
}).then(function (result) {
// Diplay result.error.message to your customer
});
</script>
Снимок экрана бесконечного цикла загрузки, в котором я обнаружил ошибку на вкладке сети.
![enter image description here](https://i.stack.imgur.com/ivTtb.png)
Редактировать: Я также только что заметил, что когда следующий скрипт находится внутри моего HTML, он сразу же перенаправляет пользователей на проверку Stripe. Как я могу помешать этому и сделать это только тогда, когда нажата кнопка «Отправить / заплатить».
Редактировать 2 Я обнаружил, что в моем верхнем редактировании мне нужно создать обработчик / прослушиватель событий. Я буду исследовать это сам, нет необходимости отвечать на эту часть, хотя я очень благодарен.
<script>
stripe.redirectToCheckout({
sessionId: "test123",
}).then(function (result) {
// Diplay result.error.message to your customer
});
</script>