书籍目录 展开 / 收起

订阅生命周期:续费、取消、退款与支付失败

假设ClearCopy后来确实有了每月反复修改多个App文案的客户,你试售前节的19美元月订阅。现在一位用户点了取消,你需要回答:“今天还可以用吗?还会扣款吗?”本篇完成一份账户页状态稿与取消演练,让这个答案可以直接显示给用户。

这里使用教学时间线,不会替你取消或退款任何真实订单。要在Stripe控制台跟做,请使用独立Sandbox中的测试订阅;没有测试订阅也可以先按表做纸面演练。9美元一次性10次包本来就不自动续费,不需要借用订阅取消动作。

先把一位用户的时间线填完整

设一笔月订阅于2026年11月2日09:00 UTC开始,当期结束为12月2日09:00 UTC,用户在11月15日请求取消。示例只讨论这一个已付周期,不做套餐升级或折算。

把下面的成品放进账户页草稿:

ClearCopy Monthly · $19/month
Current period ends: 2 December 2026, 09:00 UTC
Status: Cancellation scheduled
You can use your remaining checks until this date.
Your subscription will not renew.
[Manage billing]

“已安排取消”和“已到期”是两个时刻。11月15日收到取消请求后,按本例选择的期末取消规则,仍保留本期已付使用权。12月2日才停止下一个周期的服务。用户不应只能看到模糊的Canceled,再猜自己是否已经失去访问。

在测试订阅上选择期末取消

打开Stripe取消订阅说明,官方页面在控制台操作中明确让你选择立即、期末或自定义日期。配图显示相关设置,注意看生效时间,而不只看取消按钮。

  1. 确认进入独立测试环境,打开 Subscriptions,选择一条专门为本练习创建的19美元测试订阅。
  2. 打开该订阅的更多菜单,选择 Cancel subscription。
  3. 选择在当前周期结束时取消,查看确认区域显示的具体日期。该日期来自你自己的测试记录,不会与上面的教学日期完全一致。
  4. 完成后查看订阅详情,应出现期末取消安排;应用后端同步保存取消安排和实际周期结束时间。

纸面演练对应的状态转换已经填好:

时刻 周期已付 安排期末取消 应用可新建报告 账户页文字
11月2日付款成功 是 否 按本期剩余额度允许 Renews on 2 December
11月15日安排取消 是 是 继续允许至期末 Will not renew
12月2日期末到达 上期已结束 已生效 停止本订阅的新任务 Subscription ended

如果你选成“立即取消”,结果会和第二行不同。回到测试详情确认操作,使用另一条测试订阅重做;不要在真实账户上来回取消来验证教程。

Stripe官方取消订阅说明:立即取消、周期末取消与自定义日期属于不同策略,应分别核对账单和访问状态
Stripe官方取消订阅说明:立即取消、周期末取消与自定义日期属于不同策略,应分别核对账单和访问状态。

续费失败时写清楚要用户做什么

现在另取一条未安排取消的教学订阅,在12月2日续费失败。账户页给出的动作应当是修复付款方式:

We couldn't renew your subscription.
Update your payment method to continue using ClearCopy.
Your saved reports are still available.
[Update payment method]

本例的产品规则是:本期未成功付款时,暂停新生成,保留旧报告可读。你也可以设计明确的宽限期,但应把结束时间加入同一条状态记录。不要只根据active这个单词猜某一期账单是否已经付清;后端结合订阅、付款发票和实际服务周期计算权限。

Stripe付款重试文档给出 Billing > Revenue recovery > Retries 入口。先在测试设置查看重试安排,再将应用提示中的下一次处理时间与平台实际信息对齐。不能假定任何失败都会自动重试:有些失败原因需要用户先更换付款方式。

将支付管理入口交给Stripe托管客户门户时,由后端根据当前登录用户映射到的平台客户创建会话,不接受浏览器指定其他人的客户ID。这样账户页的Manage billing才能打开本人的账单。

退款另走一条时间线

回到11月2日那笔19美元测试付款,假设支持团队决定全额退款。取消订阅和退回19美元是两项动作:停止续费不会自动完成退款;退了一笔款,也不能靠想当然确保未来不再续费。

在Stripe退款说明中找到付款详情的 Refund payment 入口。测试时选择明确的一笔付款,输入退款金额并核对币种,执行后查看退款对象状态。对于这份教学退款规则,应用先暂停本期新生成,将账单页显示为Refund pending;平台确认成功后显示Refunded $19。如果失败,保留问题记录并联系处理,不写“钱已到账”。

可以直接复用这段给用户的通知:

We've submitted a $19 refund for your payment on 2 November.
Refund status: pending.
Your subscription is set not to renew.
We will update this page when the payment provider confirms it.

发送前,用实际结果替换日期、金额和状态;只有取消安排也成功时才保留第三行。银行到账时间可能与平台受理时间不同,页面应展示查到的状态。

把按钮和结果放在一起检查

把三个动作放在账户页原型中:Cancel renewal应显示取消生效日期;Update payment method应进入当前用户的托管管理会话;退款申请应展示单独的处理状态。不要让“删除账号”承担取消付款的唯一入口,也不要把退款按钮做成无说明的一键危险操作。

最后完成一遍纸面走读:11月15日取消后还能用,12月2日不再续费;另一位未取消用户续费失败后看见修复入口;第三笔测试付款退款待确认时显示pending。你现在有了可直接给前端和后端使用的一份时间表,而不只是“支持取消和退款”的功能清单。

登录后可保存阅读进度

下一篇:上线验收与运营:沙盒测试、对账与风险处理登录保存进度