StoreKit 2与App Store Server API实战:iOS应用内购与订阅管理完整指南
作者:API传播员 · 2025-10-20 · 阅读时间:5分钟
苹果在2021年的WWDC大会上推出了全新的StoreKit 2框架,这是专门用于管理iOS应用内购买的工具。随着应用内购和订阅功能的普及,StoreKit 2通过简化集成流程,为开发者提供了更高效的解决方案。本文将从服务器端的角度,介绍如何通过App Store Server API使用StoreKit 2。
API 请求认证
在当前的JSON Web Token (JWT)标准进行认证。
IAP 密钥生成
首先,需要创建一个用于请求授权的私钥。具体步骤如下:
- 登录App Store Connect,进入“用户与访问”部分。
- 在“密钥”标签页中,选择“应用内购买密钥类型”并下载新密钥。
- 记录密钥ID,这可以在App Store Connect的API标签页中找到。

创建令牌
接下来,需要创建一个用于请求授权的JWT令牌。以下是一些关键点:
- 创建令牌的具体过程可以参考官方文档。
- 不需要为每次请求生成新的令牌。可以设置最长60分钟的有效期,在此期间重复使用同一令牌。
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参数再次请求。
服务器交易通知
服务器通知可以帮助开发者实时获取新购买、续订、账单问题等信息,从而简化订阅状态管理。
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为开发者提供了更高效、更安全的工具,值得尽早采用以优化用户体验。
原文链接: https://adapty.io/blog/storekit-2-api-tutorial/
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
最新文章
- .NET Core 3.1 WebAPI+Vue+Element UI实现文件上传
- Python与Ollama的开发案例
- 知识图谱API解析
- 如何在Excel VBA中调用REST API
- 恒温器API终极指南
- API 网关集成 SkyWalking 打造全方位日志处理
- 什么是SalesforceAPI
- 设计API前,先建模你的API:API建模指南
- 使用Cucumber框架进行API测试的Playwright示例
- 2025年提升软件质量的十大API测试工具
- 强力监控!Spring Boot 3.3 集成 Zipkin 全面追踪 RESTful API 性能
- API安全:内部审计师快速参考指南