我正在尝试使用Stripe Checkout将付款集成到我的Web应用程序中。我遵循了their website上的指南,当我致电stripe.checkout.Session.create
时,它会将我重定向到付款页面https://checkout.stripe.com/pay/xxx,但是从不加载。我已经使用Chrome的F12阅读了网络请求,并且正在获取此信息。
{错误:{消息:“无效的付款页面ID: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",
}
]
)
我的html页面上的js代码
<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>
无限加载循环的屏幕快照,我在network标签中发现了错误。
编辑:我还注意到,当以下脚本位于HTML中时,它将立即将用户重定向到Stripe检出。我该如何阻止它执行此操作,而仅在按下“提交/付款”按钮时发生。
编辑2 我发现对于上层编辑,我需要创建一个事件处理程序/侦听器。我将自己进行研究,尽管非常感谢,但无需回答这一部分。
<script>
stripe.redirectToCheckout({
sessionId: "test123",
}).then(function (result) {
// Diplay result.error.message to your customer
});
</script>
答案 0 :(得分:0)
payment = stripe.checkout.Session.create(
success_url="https://mypage.com/success",
cancel_url="https://mypage.com/cancel",
payment_method_types=["card"],
line_items=[
{
"amount": 2000,
"quantity": 2,
"name": "Blue banana",
"currency": "usd",
}
]
)
context = payment.id
Printing(payment.id)
从条带返回响应ID。我保存了此变量,并将其添加为上下文,以用作HTML中的变量。页面现已完全加载。