You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Stripe React组件与Django实现支付后自动重定向

解决Stripe定价表支付后重定向问题

你的核心问题是没有给Stripe React定价表组件配置支付成功/取消后的重定向URL,Stripe的定价表组件本身支持直接通过属性指定跳转地址,不需要依赖Webhook触发重定向。以下是具体修复步骤:

1. 配置Stripe定价表组件的重定向属性

修改Offers.js中的<stripe-pricing-table>标签,添加success-url和cancel-url属性,指向你的Django路由:

<stripe-pricing-table 
   pricing-table-id="prctbl_<my_pricing_table_key>"
   publishable-key="pk_test_<my-stripe-public-key>"
   customer-email={`${info_user.info_user.email}`}
   client-reference-id={`${info_user.info_user.id}`}
   // 添加重定向URL,用window.location.origin动态获取当前站点域名
   success-url={`${window.location.origin}/success`}
   cancel-url={`${window.location.origin}/cancel`}
>
</stripe-pricing-table>

2. 修复Django的SuccessView避免循环重定向

你的SuccessView当前直接重定向到/success会导致无限循环,改成渲染成功页面模板:

class SuccessView(View):
    def get(self, request):
        # 可选:可以通过request.GET获取Stripe传递的session_id等参数做后续处理
        return render(request, 'success.html', {})

3. 验证Stripe Dashboard配置(可选)

如果之前在Stripe Dashboard中给定价表设置过重定向URL,需确认组件属性的优先级更高——Stripe会优先使用组件上的success-url和cancel-url,而非Dashboard的全局设置。

原理说明

Stripe定价表的支付流程是:用户完成支付后,Stripe支付页面会直接跳转到你指定的success-url;如果用户取消支付,则跳转到cancel-url。Webhook的作用是后台异步处理订阅数据(比如更新你的Abonnement模型),和前端重定向是两个独立的流程。

内容的提问来源于stack exchange,提问作者Bastien Angeloz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 10:05:28