LESSON 37 / 575 分钟

StoreKit、购买与订阅

购买是一条需要恢复、验证和持续更新权益的业务流程。

用你的前端经验理解

可以借用订单与权限系统的经验,但苹果平台的数字内容购买、交易验证和分发规则需要单独理解。

为什么需要它

购买不是按钮点击后把 isPro 设为 true,而是从产品展示、用户确认、交易验证到权益恢复的一整条流程。StoreKit 负责与 App Store 交易体系交互,应用负责把可信交易映射成具体能力。购买状态、业务登录状态和 iCloud 状态相互独立,不能因为账号登录成功就推断已购买。

它是怎样工作的

产品 ID 是配置身份,价格与货币显示应使用商店返回的本地化信息。购买可能成功、取消、待处理或失败;成功结果仍需要按验证结果处理。权益要在应用启动和交易更新时重新计算,不能只依赖本次购买回调。可恢复商品应有恢复路径,消耗型商品则需要独立的发放与消耗账本。

把关键概念连起来

1

产品

在 App Store Connect 配置产品,用 StoreKit 获取商品信息并发起购买;处理用户取消、待处理与失败。

2

权益

根据已验证的交易更新权限,监听交易变化,提供合适的恢复购买体验;不要只信一个本地 Bool。

3

规则

数字内容、实体商品、地区和分发渠道会影响支付规则,发布前核对当前 App Review Guidelines。

为阅读 App 解锁高级主题

  1. 加载产品并显示实际商店价格;加载失败时保留基础阅读能力,不猜一个缓存外的价格继续收费。
  2. 用户确认购买后只在交易可信且商品匹配时解锁;取消回到原页面,待处理明确提示等待。
  3. 重启和换设备后重新读取可用权益,验证已购用户不必重复付费。

这里需要你亲自判断

一次购买按钮返回不代表你已经正确处理退款、跨设备恢复和订阅过期。

做一个小练习

列出购买成功、取消、待批准、过期、退款后各自应显示的权益状态。

  1. 在内购实验室比较取消、待处理、验证失败和已授权四种结果。
  2. 说明高级主题与一次性 AI 生成次数为什么需要不同的权益模型。
展开参考思路与验收标准

非消耗型解锁可以从有效交易恢复;消耗型次数还需维护发放和使用记录。客户端布尔值只是界面缓存,不能成为跨设备或服务端计费功能的唯一依据。

付费权益应以什么为依据?

继续查阅官方资料
Apple Developer 官方资料

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

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