我正在尝试整合Stripe Checkout,以便在提交表单时让客户付款。此集成将客户重定向到Stripe的页面以进行付款。在重定向页面上提交付款后,如何让Django记住表单中的输入值?我可以创建一个记住值的自定义URL吗?
此外,他们的脚本需要我通过变量提供的付款ID,但是在提交表单后首先创建此变量。一旦页面呈现,我无法动态更改javascript变量,对吗?
使用Javascript
<script>
stripe.redirectToCheckout({
sessionId: "{{context}}",
}).then(function (result) {
// Diplay result.error.message to your customer
});
</script>
用于创建表单提交后调用的付款的Python代码
stripeUID = str(uuid.uuid4())
payment = stripe.checkout.Session.create(
success_url="https://mypage.com/succes",
cancel_url="https://mypage.com/error",
payment_method_types=["card"],
client_reference_id= stripeUID,
line_items=[
{
"amount": 2000242,
"quantity": 1,
"name": "Blender rendering",
"currency": "usd",
}
]
)
context = payment.id
对于付款ID,请使用AJAX。使用Javascript提交表单,并在AJAX响应中提供付款ID。然后你可以在重定向中使用它。至于重定向,您需要创建一个模型来存储表单值与条带会话ID,因此当您的客户重定向到您的网站时,您可以使用会话ID查询该表以获取其原始表单值。
AJAX调用可以通过使用fetch,XMLHttpRequest,jQuery.ajax来完成