iOS收据可重复用于购买校验吗?同一张收据能否查询后续购买?
iOS收据校验常见问题解答
嘿,针对你提出的几个iOS收据相关的问题,我结合实际开发经验给你梳理清楚:
1. iOS收据是否可重复用于购买校验?
绝对可以重复使用!不过要注意:你重复校验的是这张收据本身包含的交易记录——也就是说,这张收据生成时存在的所有购买都会被返回,但后续产生的新购买不会自动出现在这张旧收据里。所以重复校验旧收据,得到的结果和第一次校验是一致的,不会有新内容。
2. 服务器定期用旧收据能否查到新购买?
不行的。当你把某一时间点的收据发送到服务器后,App Store在校验时只会返回这张收据生成时已存在的应用内购买记录,不会关联后续用户产生的新交易。沙箱测试里的表现和生产环境完全一致,所以你看到的“仅返回生成时点之前的记录”就是正常的预期行为。
3. 业务需要查询后续购买的解决方案
如果你的场景需要跟踪用户后续的新购买,正确的做法是:
- 每当用户完成新的应用内购买后,客户端立即获取最新的收据文件(通过
StoreKit的appStoreReceiptURL获取),并将其发送到服务器存储。 - 若需要定期检查,客户端定期同步当前最新的收据到服务器,再由服务器用这张最新收据去App Store做校验,这样就能拿到包括最新交易在内的所有记录。
简单来说,收据是某个时刻的交易快照,只有最新的收据才能包含到当前为止的所有购买记录,旧收据无法“自动更新”后续交易。
内容的提问来源于stack exchange,提问作者swalkner
相关产品推荐
相关产品推荐

