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

Stripe API技术问询:付费月后开启2个月试用并自动取消订阅

实现Stripe先付费1个月再2个月试用期后自动取消订阅的方案

嘿,这个需求完全可以在Stripe中实现,我给你两种实用方案,包括你提到的替代思路的优化版,帮你搞定这个流程:

方案一:利用订阅多阶段(Phases)+ 自动取消(原生无Webhook依赖)

这是最直接的原生实现方式,不需要额外监听Webhook,配置好订阅阶段即可:

  • 第一步:创建两个价格对象:一个是每月$xx的付费价格,另一个是每月$0的免费价格(用免费价格比折扣更直观)。
  • 第二步:创建订阅时,设置多阶段计划:
    • 阶段1:使用付费价格,持续1个计费周期(1个月),设置payment_behavior: 'default_incomplete'确保立即收取第一个月的费用。
    • 阶段2:使用免费价格,持续2个计费周期(2个月)。
  • 第三步:设置订阅的cancel_at参数为订阅创建后3个月的时间戳(也就是两个阶段全部结束的时间点)。这样当所有阶段执行完毕后,订阅会自动取消,不会产生后续费用。

这种方案的优势是全程由Stripe原生处理,不需要依赖外部服务监听事件,稳定性更高。

方案二:订阅+折扣券+Webhook自动取消(你的替代思路优化版)

如果你更倾向于用折扣券的方式,这个方案也很可靠,只需要配合Webhook处理取消逻辑:

  • 第一步:创建每月$xx的订阅计划,为用户创建订阅时,立即生成第一张发票并完成收费(确保第一个月的服务是付费的)。
  • 第二步:创建一个100%折扣的优惠券,设置duration: 'repeating',max_redemptions: 2(限制仅可使用2次,对应接下来的2个月试用期)。将这个优惠券应用到订阅上。
  • 第三步:监听Stripe的invoice.created事件,在你的后端服务中编写逻辑:
    • 当触发该事件时,检查当前发票对应的订阅已生成的发票数量。当是第三张发票时(第一张付费,第二、第三张用折扣),立即调用Stripe的API取消该订阅,避免后续产生费用。

注意:在判断发票数量时,建议通过订阅的latest_invoice关联的周期数来确认,或者记录订阅创建时间来计算当前处于第几个计费周期,避免因发票重试等情况导致判断错误。

两种方案都能满足你的需求,方案一更省心,方案二更灵活(比如后续要调整试用期时长只需要修改优惠券设置),你可以根据自己的技术栈和需求选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:57:32