LESSON 50 / 576 分钟

权益与自动续订:取消不等于立刻过期

是否有会员权限、是否会下次自动续费、上一次交易是否完成,是三个不同问题。

用你的前端经验理解

可以用“当前有效权限”和“未来续费计划”两个字段理解。不能只用 isPro + isSubscribed 两个含义模糊的布尔值覆盖所有状态。

为什么需要它

订阅至少有当前访问资格与未来续订意愿两个维度。用户取消自动续订,通常只是阻止下一周期扣款,当前已经支付的期限仍可能有效。账单重试、宽限期、退款和撤销也有不同影响;把这些状态压成一个 isSubscribed 布尔值会丢失关键业务信息。

它是怎样工作的

权益应由可信交易、到期时间与相关状态综合计算,再映射为当前可用能力。currentEntitlements 可帮助获取当前权益相关交易,但应用仍需处理产品语义和验证结果。页面应该区分到期日与下一次续订信息,不能在用户关闭续订后立即显示“会员已失效”。

把关键概念连起来

1

恢复与更新

启动时读取并验证 Transaction.currentEntitlements 等适用权益,持续监听 updates;用户主动点恢复时可使用 AppStore.sync(),不要每次启动强制调用。消耗型和非续期商品需要各自的历史/期限管理。

2

订阅状态

取消自动续订通常仍可用到当前付费期结束;过期后停止授予。账单重试与宽限期不同,是否保留权益取决于有效状态和已配置的宽限安排。不要只看 willAutoRenew。

3

变化与管理

正确处理退款/撤销、升级/降级、优惠资格与 Family Sharing 的配置边界。提供系统订阅管理入口,付费墙清楚展示周期、价格、试用结束后的费用及恢复方式。

9 月 1 日买的月度会员

用户在 9 月 10 日关闭自动续费,当前已支付周期仍有效。界面可显示“可使用至到期日,之后不自动续费”;真正收到过期或适用的撤销状态后再更新权限。日期以交易为准。

用户今天取消月底到期的会员

  1. 确认当前已支付周期仍有效,继续提供对应能力,并展示有效至何时。
  2. 未来到期或收到撤销等可信更新时重新计算权限;不要依赖用户再次点击购买页才刷新。
  3. 在管理入口让用户查看商店订阅状态,服务端功能则以服务端可信权益判断,避免修改客户端时间绕过限制。

这里需要你亲自判断

不要把“自动续费关闭”直接转换为“会员失效”;也不要在网络失败时无依据延长权益或把已验证且仍有效的权益全部清空。

做一个小练习

在实验中对比有效、已取消续订但尚未到期、过期、宽限期、退款撤销六种情况。

  1. 在实验室比较已取消但未到期、已到期、宽限期和退款撤销。
  2. 为每种状态分别写访问资格、展示文案与下一步动作。
展开参考思路与验收标准

关闭续订与立即失去访问不是同一事件。恢复购买也不会重新扣款或凭空延长周期,它帮助找回已有且仍符合条件的权益。

打开对应交互实验

用户取消下次自动续费,但当前付费期还没结束,应如何处理?

继续查阅官方资料
Apple Developer 官方资料当前交易权益

本课聚焦核心认知。具体 API、系统要求与发布政策,以当前官方文档和工程验证为准。

答对理解题后即可标记完成