python - 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。我想显示他们的订单信息并从成功页面发送一封电子邮件,但目前,每个人都可以访问(会导致随机电子邮件等)。有没有办法可以限制刚刚签出的人?谢谢!
解决方案
成功页面实际上应该只是一个让您的用户知道他们的付款已经完成的页面。我个人不建议在您的用户登陆时触发任何特定于应用程序的逻辑。正如您所指出的,这可能会导致用户在该页面上随机绊倒并触发电子邮件的事故。它还为不良行为者提供了利用您的应用程序的机会。
相反,我会创建一个webhook 端点并监听checkout.session.completed事件,并从那里触发您的电子邮件。构建 webhook 端点应该不会比在您的服务器上构建任何其他端点更困难,只有一些小的额外逻辑来验证传入请求。
另一种选择是使用像 Zapier 这样的工具来监听来自 Stripe 的这些事件并从中触发各种流:https ://stripe.com/partners/zapier
推荐阅读
- python - Index error trying to deduplicate a list only using if and for
- python - 如何获取列表的所有组合,其中两个相邻的元素可以成为一个元素
- asp.net-core - 在 Blazor 服务器 Web 应用程序中托管 Web API 时出错
- php - 如何在 Laravel 8 中集成 PayPal 智能按钮?
- c# - 单击按钮时传递下拉列表的值
- python - 我要更改哪些参数才能从头开始训练 pytorch 模型?
- c++ - 对象超出范围并调用析构函数,导致该对象地址之后的指针在每个属性上具有不可读的内存
- javascript - 根据状态更改数组调用
- javascript - 单击更改默认标记映射框
- java - 使用方法的 SDK 常量从 SIM 卡获取联系人