ios - iOS Receipt Data 在其他设备中返回 nil
问题描述
我正在我的应用程序中开发自动续订订阅。
当应用程序启动时,它会调用 appStoreReceiptURL 来获取收据并将其发送到服务器进行验证。
我的情况是...
有2台设备D1和D2,用同一个账号A1登录。
1)。使用 Xcode 将应用程序构建到设备上,登录相同的沙盒测试帐户。先在D1进行购买,购买成功后在D2打开应用,但appStoreReceiptURL返回nil数据。
2)。构建发布应用并上传到 TestFlight,并将应用安装到设备。使用相同的 TestFlight 帐户登录。先在D1进行购买,购买成功后在D2打开应用,但是appStoreReceiptURL还是返回nil数据。
在我的预期中,无论设备如何,如果它们使用相同的 Apple 帐户登录,它应该返回相同的收据数据。
我对此一无所知,也找不到任何官方文件,我的假设是否正确?
谢谢
解决方案
在进行购买之前,收据文件不会出现在沙盒中。在生产中,收据文件几乎总是存在,因为它是在下载应用程序时生成的。如果用户退出其 iTunes 帐户,您仍然应该能够处理缺少收据的情况。
获得 appStoreReceiptURL 后,您可以通过/verifyReceipt
服务器上的 Apple 端点对其进行验证,以获取最新的订阅状态。
推荐阅读
- javascript - How to annotate a generic closure that returns an object with methods with Flow?
- node.js - Discord.js:只有一种反应
- kubernetes - Kubernetes 用户无法在命名空间中列出“pod”
- javascript - 将文本从一个 textarea 元素实时复制到另一个元素
- ios - 为什么我不能将 tableview 背景颜色设置为白色?
- arrays - 将复杂的 json 发布到 api
- python - 转到 Python 中的定义 Microsoft 扩展在模块中不起作用
- reactjs - 如何以编程方式更改 react-admin 创建组件中的记录
- python - 如何根据条件在python中的列上拆分74行和3234列数据框
- ios - 创建自定义 UIAlertController