自动续订IAP:latest_receipt字段

时间:2012-05-03 15:38:35

标签: objective-c ios cocoa-touch in-app-purchase

当用户购买订阅时,我将收据存储在服务器上的已完成交易旁边,并附有密钥以识别收据所属的用户。当应用程序需要检查订阅是否仍处于活动状态时,它会查询服务器,服务器会使用Apple验证收据,并在订阅过期时将信息返回给我的应用程序。

现在的问题是:

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

原始收据是否仍会验证,并返回latest_receipt / _info字段,还是需要存储新交易的新收据?

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

1 个答案:

答案 0 :(得分:2)

我不确定您是否有必要验证收据,也许它可以按照您的方式运作,但我们确实略有不同,因此不会遇到您的问题。

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

我认为这就是Apple推荐的方式(至少这是我理解的Apple's docs)。