在成功页面检索条带会话 ID

亚历克斯地米洛普

我正在使用带有 django 的条带,我想将从结帐会话收到的一些信息传递到成功页面。

阅读文档https://stripe.com/docs/payments/checkout/custom-success-page#modify-success-url后,我将成功 url 修改为

MY_DOMAIN = 'http://127.0.0.1:8000/orders'

success_url=MY_DOMAIN + '/success?session_id={CHECKOUT_SESSION_ID}',
cancel_url=YOUR_DOMAIN + '/cancel/',
            metadata={
                "price_id": price_id,
                
                }
            )

def Success(request):
    session = stripe.checkout.Session.retrieve('session_id')
    return render(request, 'orders/success.html')

但这给了我一个错误:

checkout.session id 无效:session_id

如果我手动放置而不是“session_id”,则打印在 url 中的实际 id 一切正常。

所以我的问题是我应该写什么而不是'session_id'来检索会话?

pycode81

使用预建的结帐页面时,您可以向 Stripe 提供成功的 url,以便在用户成功完成付款后将其发送到该页面。这样做是这样的:

checkout_session = stripe.checkout.Session.create(
                        line_items=[{'price': price, 'quantity': 1}],
                        payment_method_types=['card'],
                        mode='payment',
                        success_url="http://yoursite.com/order/success?session_id={CHECKOUT_SESSION_ID}"
                        cancel_url=domain + cancelURL,
                    )

return redirect(checkout_session.url)

这将创建一个 Stripe 结帐会话并将用户发送给它。一旦用户成功付款,Stripe 会将他们发送到您提供的 success_url 并输入正确的结帐会话 ID。

您必须使用 webhook 来获取所需的数据,将其保存到数据库中,然后在成功页面视图中查询数据库。从成功页面 URL 获取结帐会话 ID 取决于您是使用上例中的 GET 还是像https://yoursite.com/order/12345这样的 URL 的一部分。如果您使用 GET 方法,请参阅此处了解更多信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章