3

当用户购买订阅时,我将完成交易的收据与用于识别收据所属用户的密钥一起存储在服务器上。当应用程序需要检查订阅是否仍然有效时,它会查询服务器,服务器验证 Apple 的收据并将信息返回给我的应用程序,无论订阅是否过期。

现在的问题是:

当响应返回latest_receipt/_info字段时,服务器应获取该收据并替换旧收据以供将来验证。如果订阅期有间隔(例如用户订阅了 1 个月,然后取消,然后再次订阅)或用户更改了订阅类型(例如从 1 个月到 3 个月),会发生什么情况?

原始收据是否仍然有效,并返回latest_receipt/_info字段,还是我需要存储新交易的新收据?

我现在对这个自动更新的事情真的很困惑,所以我什至不确定我的验证过程是否正确。

4

1 回答 1

2

我不确定您必须验证收据的所有可能性,也许它可以按您的方式工作,但我们的做法略有不同,因此不会遇到您的问题。

我们将所有收据存储在设备端(请注意,自动更新也会产生新的收据)。每当需要验证时,我们会将设备存储的最新收据发布到服务器,并通过调用 iTunes 进行验证。之后,服务器向设备响应有关用户权限的信息。

我认为这是 Apple 推荐的方式(或者至少这是我理解Apple 文档的方式)。

于 2012-05-03T16:14:50.543 回答