首页 > 解决方案 > Django - 限制 Stripe SuccessUrl 访问

问题描述

我刚刚将 Stripe Checkout 与我的 Django 应用程序集成。但是,从他们的代码中:

 session = stripe.checkout.Session.create(
        customer_email=customer.email,
        payment_method_types=['card'],
        line_items=line_items,

        mode='payment',
        success_url='http://127.0.0.1:8000/SUCCESS/?session_id={CHECKOUT_SESSION_ID}',
        cancel_url='http://127.0.0.1:8000/cart'
        )

它重定向到 Success_url。我想显示他们的订单信息并从成功页面发送一封电子邮件,但目前,每个人都可以访问(会导致随机电子邮件等)。有没有办法可以限制刚刚签出的人?谢谢!

标签: pythondjangostripe-payments

解决方案


成功页面实际上应该只是一个让您的用户知道他们的付款已经完成的页面。我个人不建议在您的用户登陆时触发任何特定于应用程序的逻辑。正如您所指出的,这可能会导致用户在该页面上随机绊倒并触发电子邮件的事故。它还为不良行为者提供了利用您的应用程序的机会。

相反,我会创建一个webhook 端点并监听checkout.session.completed事件,并从那里触发您的电子邮件。构建 webhook 端点应该不会比在您的服务器上构建任何其他端点更困难,只有一些小的额外逻辑来验证传入请求

另一种选择是使用像 Zapier 这样的工具来监听来自 Stripe 的这些事件并从中触发各种流:https ://stripe.com/partners/zapier


推荐阅读