首页 > 解决方案 > iOS Receipt Data 在其他设备中返回 nil

问题描述

我正在我的应用程序中开发自动续订订阅。

当应用程序启动时,它会调用 appStoreReceiptURL 来获取收据并将其发送到服务器进行验证。

我的情况是...

有2台设备D1和D2,用同一个账号A1登录。

1)。使用 Xcode 将应用程序构建到设备上,登录相同的沙盒测试帐户。先在D1进行购买,购买成功后在D2打开应用,但appStoreReceiptURL返回nil数据。

2)。构建发布应用并上传到 TestFlight,并将应用安装到设备。使用相同的 TestFlight 帐户登录。先在D1进行购买,购买成功后在D2打开应用,但是appStoreReceiptURL还是返回nil数据。

在我的预期中,无论设备如何,如果它们使用相同的 Apple 帐户登录,它应该返回相同的收据数据。

我对此一无所知,也找不到任何官方文件,我的假设是否正确?

谢谢

标签: iosin-app-purchase

解决方案


在进行购买之前,收据文件不会出现在沙盒中。在生产中,收据文件几乎总是存在,因为它是在下载应用程序时生成的。如果用户退出其 iTunes 帐户,您仍然应该能够处理缺少收据的情况。

获得 appStoreReceiptURL 后,您可以通过/verifyReceipt服务器上的 Apple 端点对其进行验证,以获取最新的订阅状态。


推荐阅读