payin商户操作手册

最新文章

Stripe 订阅取消的撤回边界:期末前保留,终止后新建

区分等待期末生效的取消与已经终止的订阅,正确解读取消时间,并选择经核对的撤回或重新购买流程。

发布日期及来源核查日期:

普通订阅的期末取消、撤回资格、终止后新建、时间字段及事件解读;不涉及订阅计划解除、门户资格、客户删除、自定义日期变更或逾期恢复。

撤回取消指令,不是恢复已终止订阅

客户在已付费周期结束前改变主意,与订阅已经终止后重新购买,需要走不同的处理分支。一条公开开发者提问直接询问:更新已经结束的订阅,是否就能将其重新激活?[4] Stripe 文档明确区分这两种情况:尚未生效的期末取消可以撤回,已经取消的订阅则不能重新激活。[1] 因此,“继续订阅”应先触发状态核对,而不是无条件执行同一个更新请求。

先看状态,再看取消标志

cancel_at_period_end=true 不等于 status=canceled。Stripe 对该字段的定义同时包含两种含义:对于有效订阅,它表示将于期末取消;对于已取消订阅,它表示此前是在期末取消的。[2] 单独读取这个布尔值,无法判断客户是否仍有撤回机会,也无法区分未来指令与历史结果。

时间字段也不能混用。使用期末取消时,canceled_at 反映最近一次更新请求的时间,而不是订阅后来转为已取消状态的时刻;ended_at 才用于记录订阅结束时间。[2] 不要仅因取消时间非空,就立即撤销客户访问权限。我们的建议是同时记录订阅标识、当前状态、取消相关字段及约定的服务截止时间,让客服与应用权限使用同一份核对依据。

终止之前:保留原订阅并撤回取消

  1. 验证请求人的权限,在正确的 Stripe 账户及环境中重新获取目标订阅。先确认这是普通的期末取消,而不是自定义取消日期或由订阅计划控制的变更。
  2. 如果取消仍在等待生效且账期尚未结束,将原订阅的 cancel_at_period_end 更新为 false。Stripe 控制台也提供停止预定取消的操作。[1]
  3. 检查返回状态之后,再向客户确认续订安排。建议不要把价格、数量或计费日期修改混入这次撤回,以免无法辨别每项操作的实际影响。

Stripe 明确限定:这种撤回只适用于尚未到达账期末的订阅。[1] 接近截止时刻时,页面显示可能已经落后于实际状态。若更新失败或结果不明,应重新获取状态并核对,而不是反复承诺可以恢复。上述步骤是操作建议,并不表示“先读取、后更新”具有不可分割的原子性;实际取消已经完成时,就必须切换到重新购买分支。

取消之后:明确创建新的订阅

当前状态若为 canceled,就应停止撤回流程。Stripe 说明已取消订阅不能重新启动,继续计费需要新建订阅;创建接口支持在现有客户上新建订阅。[1][3] 这不意味着必须重建客户,也不意味着原订阅标识会重新变为有效。

应把回归客户的价格、数量、付款方式、税务配置及约定开始日期作为一次新的购买决定进行确认。不要默认承诺旧折扣或剩余服务会自动恢复。使用 collection_method=charge_automatically 创建订阅时,首张账单会在该请求中完成定稿,初次付款的具体行为由 payment_behavior 决定。[3] 因而,新建订阅不是单纯修改本地数据库标签,也不应在未经客户确认的情况下作为失败撤回请求的隐式替代。

我们的建议是保留旧订阅与新订阅的关联,防止重复提交购买,并在核实新订阅及付款结果后再按约定开放服务。旧账单应单独检查:取消会暂停该订阅未结清及草稿账单的自动收款,但仍可手动收款。[1] 不要把重新购买描述为清除了以前的欠款,也不要因旧订阅结束就丢失对账线索。

用事件和实际结果验收

设置取消标志会触发 customer.subscription.updated;真正取消时,包括到达期末自动取消,会触发 customer.subscription.deleted[1] 因此不能把每条更新事件都当作终止已经完成。建议分别验证等待期末取消、到期前成功撤回、取消后重新购买,以及临近截止时请求结果不明四种情况,并核对客户提示与应用权限是否一致。

本文不讨论订阅计划解除、客户门户资格或客户删除。官方来源未注明发布日期及更新日期,资料检索日期为 2026-09-23。社区问题仅证明存在实际疑问,不代表搜索量。本次未执行需要身份验证的 Stripe 测试;实施前仍须核对所用接口版本、地区账户资格及当地取消义务。

客服提示也应区分“已撤回预定取消”与“已创建新的订阅”,并记录对应的订阅标识及是否仍需处理付款。这项措辞建议旨在避免让客户误以为历史取消记录已经消失,或认为创建请求成功就代表已经付款。

来源与日期

官方文档用于核对产品行为,社区问题仅说明具体需求,不代表普遍程度。检索日期为 2026-09-23,检索日期不等于发布日期。本文是文档研究,不是实际账户测试、PayIn 功能声明或金融建议。地区可用性和账户资格须另行确认。

  • [1] 取消订阅 · 发布日期未注明;更新日期未注明;核查:2026-09-23。
  • [2] 订阅对象 · 发布日期未注明;更新日期未注明;核查:2026-09-23。
  • [3] 创建订阅 · 发布日期未注明;更新日期未注明;核查:2026-09-23。
  • [4] Stripe 订阅:更新已结束的订阅 · 发布:2017-03-28;更新日期未注明;核查:2026-09-23。

更多指南

全部指南