Flask 烧瓶+;Stripe-如何防止人们在不付款的情况下访问我的成功结帐页面?

Flask 烧瓶+;Stripe-如何防止人们在不付款的情况下访问我的成功结帐页面?,flask,stripe-payments,Flask,Stripe Payments,基本上我了解如何将条带支付集成到Flask中,我使用官方网站()作为指南。在指南中,用户将在付款成功后进入成功页面。成功付款后,我想做的是收集用户的电子邮件,创建一个随机密码,然后通过电子邮件将该密码发送给用户。我已经学习了如何使用此页面()从会话id中获取信息。我担心的是,用户可能会进入成功页面,获得一个帐户,并绕过所需的付款 我的解决方案是使用以下行获取会话信息: session=stripe.checkout.session.retrieve(request.args.get('sessi

基本上我了解如何将条带支付集成到Flask中,我使用官方网站()作为指南。在指南中,用户将在付款成功后进入成功页面。成功付款后,我想做的是收集用户的电子邮件,创建一个随机密码,然后通过电子邮件将该密码发送给用户。我已经学习了如何使用此页面()从会话id中获取信息。我担心的是,用户可能会进入成功页面,获得一个帐户,并绕过所需的付款

我的解决方案是使用以下行获取会话信息:

session=stripe.checkout.session.retrieve(request.args.get('session\u id'))

然后在做任何其他事情之前,检查它是否没有。如果没有,它将显示一个错误页面,如果没有,它将为用户创建一个帐户。这样行吗?或者人们可以在url中更改会话id,直到找到一个有效会话的号码


如果这不起作用,我真正想做的就是在成功付款后使用用户的电子邮件和随机密码为用户创建一个帐户。我该怎么做?

你走对了。一般来说,流程是:

  • 客户被重定向到结帐
  • 顾客付费
  • 签出会将客户重定向回您的
    success\u url
  • 您可以使用URL中的ID获取签出会话,以确认有效的付款

  • 对于#4,您可以做各种事情来确保人们猜不到结帐会话ID(由于其长度和复杂性,这不太可能)。我建议检查是否在某个时间范围内成功付款,例如过去一小时或过去一天。

    非常感谢!第四季度是否有行业标准?我想一个小时是一个相当合理的时间,但如果有一个标准的方式来确认购买,我会使用它。我知道没有行业标准,因为具体取决于业务需求、用例、风险模型、使用的付款方式等。好的,谢谢。(以下是一些额外字符以满足注释要求)