我正在使用带有 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'来检索会话?
使用预建的结帐页面时,您可以向 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] 删除。
我来说两句