StoreKit 2与App Store Server API实战:iOS应用内购与订阅管理完整指南
作者:API传播员 · 2025-10-20 · 阅读时间:5分钟
本文详细介绍了苹果在2021年WWDC大会上推出的StoreKit 2框架,专为iOS应用内购买管理设计。通过简化集成流程,StoreKit 2为开发者提供了更高效的解决方案。文章从服务器端角度出发,讲解了如何使用App Store Server API进行API请求认证、IAP密钥生成、创建JWT令牌、处理签名交易、查询用户订阅状态和交易历史,以及利用服务器通知简化订阅状态管理。
一. API 请求认证
在当前的API版本中,请求需要使用 Shared Secret 进行认证,这是一个可在App Store Connect中获取的固定密钥字符串。而新版 App Store Server API 则采用更安全的 JSON Web Token (JWT) 标准进行认证。
1. IAP 密钥生成
首先,需要创建一个用于请求授权的私钥:
- 登录App Store Connect,进入 用户与访问 部分。
- 在 密钥 标签页中,选择“应用内购买密钥类型”并下载新密钥。
- 记录 密钥ID,它位于App Store Connect的API标签页中。
2. 创建令牌
接下来,需要生成一个JWT令牌:
- 创建令牌的具体过程可参考 官方文档。
- 不需要为每次请求都生成新令牌。可以设置最长 60分钟 的有效期,在此期间重复使用同一令牌。
二. StoreKit 2 签名交易
新版 StoreKit 2 API 的所有交易均以 JSON Web Signature (JWS) 格式返回。其结构由三部分组成,以点号分隔:
- Base64头部:包含验证交易真实性所需的信息,例如加密算法(
alg
键)和证书链(x5c
键)。 -
交易负载:苹果扩展了交易字段,新增:
- appAccountToken:包含系统用户ID(UUID格式),在客户端初始化购买时设置。
- offerIdentifier:追踪促销优惠或优惠码使用情况。
- inAppOwnershipType:判断用户是直接购买(
PURCHASED
)还是家庭共享获取(FAMILY_SHARED
)。 - type:交易类型(自动续订订阅、消耗型商品等)。
- revocationDate 和 revocationReason:记录退款导致的订阅撤销日期与原因。
- 所有键名均为camelCase,日期使用毫秒级Unix时间戳。
三. App Store 用户订阅状态
要查询用户的订阅状态,可以向以下URL发送GET请求:
https://api.storekit.itunes.apple.com/inApps/v1/subscriptions/{originalTransactionId}
其中,{originalTransactionId}
为用户任意交易链的ID。返回结果包括:
-
status:显示订阅状态(决定是否授予用户付费功能)。
1
表示订阅活跃。
- SignedTransactionInfo:包含交易链最后一笔交易的信息。
- SignedRenewalInfo:提供订阅续订信息,用于预测下一个付费周期。
四. 用户交易历史
通过以下URL获取用户的完整交易历史:
https://api.storekit.itunes.apple.com/inApps/v1/history/{originalTransactionId}
返回结果为按时间排序的交易数组:
- 每次请求最多返回 20笔交易。
- 若有更多交易,
hasMore
标志为true
,需通过revision
参数分页请求。
五. 服务器交易通知
服务器通知帮助开发者实时获取购买、续订、账单问题等信息,从而简化订阅管理。
1. V2版服务器通知的改进
相较于V1,V2的改进包括:
- 单个用户操作仅触发 一条通知,避免重复。
- 新增事件类型:
OFFER_REDEEMED
、EXPIRED
、GRACE_PERIOD_EXPIRED
。 - 改进了
SUBSCRIBED
与PRICE_INCREASE
事件。
六. 沙盒环境操作
在测试购买时,需使用沙盒环境URL:
https://api.storekit-sandbox.itunes.apple.com
注意事项:
- 新版服务器通知暂不支持沙盒环境,未来会提供不同URL区分生产与沙盒。
- App Store Connect新增了 清除沙盒用户购买历史 功能,无需再新建账号。
七. 结论
苹果通过 StoreKit 2 大幅提升了应用内购和订阅的 服务器端处理体验,核心改进包括:
- 支持促销优惠与优惠码:便于追踪与分析。
- 增强分析能力:帮助开发者快速掌握核心指标。
- 简化迁移:仅需获取
originalTransactionId
即可迁移到新API。
总体而言,StoreKit 2 为iOS开发者提供了更安全、高效的工具,值得尽早集成以优化用户体验。
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)
最新文章
- Auth0 Session Management API 教程:高效管理用户会话与刷新令牌
- Dolphin-MCP 技术指南:OpenAI API 集成与高级使用
- Ktor 入门指南:用 Kotlin 构建高性能 Web 应用和 REST API
- 什么是API模拟?
- 基于NodeJS的KOA2框架实现restful API网站后台
- 2025 AI 股票/加密机器人副业|ChatGPT API 策略+TG Bot 信号 99 元/月变现
- 舆情服务API应用实践案例解析
- Dolphin MCP 使用指南:通过 OpenAI API 扩展 MCP 协议与 GPT 模型集成
- 为什么API清单是PCI DSS 4.0合规的关键
- 发现植物世界的奥秘:Trefle植物学数据API让植物识别与研究触手可及
- API与REST API的区别?
- Spring Boot + Redis 实现 API 接口防刷限流