我的app要添加付费订阅功能 ,第一次弄没有经验,跟着苹果官方文档一步步搞,结果到请求:https://sandbox.itunes.apple.com/verifyReceipt 接口验证的时候一直返回
{
"status": 21002,
}
怎么修改都不行,一直都是返回21002。结果一番查阅折腾,发现主要的问题是因为我在 Xcode 中使用了StoreKit 测试,
StoreKit 测试是什么:
Xcode 中的 StoreKit 测试是一个本地测试环境,用于测试应用内购买,无需连接到 App Store 服务器。在 Xcode 项目的本地 StoreKit 配置文件中设置应用内购买,或从 App Store Connect 中的应用内购买设置在 Xcode 中创建同步的 StoreKit 配置文件。启用配置文件后,测试环境会在您的应用程序调用 StoreKit API 时使用此本地数据。
更多说明请看这里:https://developer.apple.com/documentation/xcode/setting-up-storekit-testing-in-xcode/
因为启用StoreKit testing 后,所有的数据都在本地,是不和苹果的服务器交互的,所有拿着receipt-data无论是请求沙盒验证接口(https://sandbox.itunes.apple.com/verifyReceipt
)还是生产验证接口(https://buy.itunes.apple.com/verifyReceipt
)返回都是 21002。
只需要禁用 StoreKit configuration就可以了! 具体操作如下图:
将 StoreKit configuration 设置为 None 。然后重新运行就可以了!