Stripe 订阅立即取消与周期结束取消有什么区别
如果你要的是“现在立刻停掉、不再续费”,用立即取消;如果你要的是“已经付过的这段服务用完,到期不再续费”,用周期结束取消。两者的核心差别不在按钮名字,而在取消发生的时点、订阅状态的走向,以及已付费用和待处理账单怎么收尾。历史费用是否退、能不能退,取决于你账户里的实际账单和退款规则,需要另外核对,不能由“取消方式”直接推出。
两种取消的机制
周期结束取消:把订阅的 cancel_at_period_end 设为 true。订阅会走完客户已经付费的这段时间,到期才终止。在这段时间结束之前,你随时可以把 cancel_at_period_end 改回 false 来恢复订阅。它适合“先用完这一期,之后不续”的场景。
立即取消:订阅当场终止,不做按比例计费(no prorating)。材料明确:已取消的订阅不能重新启动,如果还要继续向该客户收费,必须新建一个订阅。它适合“现在就要停,且接受这一期剩余时间不退款、不折算”的场景。
还有一条容易忽略的边界:如果订阅是由订阅计划(subscription schedule)管理的,按周期结束取消时,会先把订阅从计划中释放,再执行取消,计划里后续尚未生效的变更不会再生效。
一个可复算的例子
假设:月付订阅,账单周期为 1 月 1 日至 1 月 31 日,客户已在 1 月 1 日付清整月费用,期间没有其他待处理发票项目。你在 1 月 10 日操作:
- 选周期结束取消:订阅继续有效到 1 月 31 日,到期终止,不再产生下一期账单。1 月 1 日那笔已付费用不因这次操作自动变化。
- 选立即取消:订阅在 1 月 10 日终止,1 月 11 日至 31 日不再提供服务,且不做按比例折算。1 月 1 日那笔费用是否退,需要单独查账单和退款记录,不能假设会自动退。
两种方式下,“已付的那笔钱退不退”都不是取消动作本身决定的,这是最容易误判的地方。
取消前要核对的账单细节
取消不等于清空所有待收项目。材料列了几种仍可能产生费用的情况:取消时生成了最终账单、客户还有另一个有效订阅、周期内产生的用量费在期末结算。要避免这些,需要手动删除待处理的发票项目;如果不想收最终用量费,可以用 clear_usage 参数更新订阅并移除按量计费的价格。
另外,设为周期结束取消时,已存在的待处理按比例计费项目会保留,并在期末照常收取;而在周期结束前立即取消时,这些发票项目会留在原地,除非你专门生成一张包含它们的发票,否则不会被处理。
执行前的核对清单
- 确认你要的是“用完这期”还是“马上停”,前者设
cancel_at_period_end=true,后者走立即取消。 - 立即取消前,确认这一期剩余时间不需要退款或折算;需要的话先查账单与退款记录。
- 检查是否有待处理的发票项目、周期内用量、以及客户名下其他有效订阅。
- 若订阅挂在订阅计划下,确认计划后续变更是否还需要保留。
- 周期结束取消后如需恢复,在期末之前把
cancel_at_period_end改回false。
一句话记住:周期结束取消是“到期不续”,立即取消是“当场终止且不可重启”;两者都不自动等于退款,钱的事要另查账单。