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

如何在Stripe中实现先付款再升级订阅计划(无需客户门户)

实现客户先支付再完成订阅升级的Stripe流程修改方案

你当前的代码是通过生成发票让客户付款后完成订阅升级,要改成客户先支付再完成升级,需要调整Stripe订阅修改的参数和流程,具体修改如下:

核心参数调整

  • 移除发票收款相关参数:删掉collection_method="send_invoice"和days_until_due=1,改用Stripe默认的charge_automatically自动收费模式,避免生成发票,转而直接触发支付流程。
  • 调整 prorations 处理方式:把proration_behavior='always_invoice'改为proration_behavior='create_prorations',这样升级产生的 prorations 费用会直接加入本次支付金额,客户支付时一次性结清。
  • 保留支付状态控制:继续使用payment_behavior='default_incomplete',确保如果客户没有有效支付方式或者支付失败,订阅不会直接升级,而是进入incomplete状态,等待客户完成支付后再激活升级。

修改后的代码示例

modified_subscription = stripe.Subscription.modify(
    subscription,
    payment_behavior='default_incomplete',
    items=[{'id': sub_id['data'][0]['items']['data'][0]['id'], 'price': price.id}],
    proration_behavior='create_prorations',
    cancel_at=datetime.utcnow() + timedelta(days=365),
)

后续流程处理

当你调用上述接口后:

  • 如果客户已有有效支付方式且扣款成功,订阅会直接升级为新计划,状态保持active。
  • 如果支付失败(比如没有绑定支付方式、余额不足),订阅会进入incomplete状态,此时你可以从返回的modified_subscription中拿到payment_intent.client_secret,在前端使用Stripe Elements引导客户完成支付。支付成功后,订阅会自动激活并完成升级。

内容的提问来源于stack exchange,提问作者BHOSLE PAWAN SHANTARAM FYBsc

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 11:23:22