当用户购买订阅时,我将完成交易时的收据存储在服务器上,并附带一个密钥来标识收据所属的用户。当应用程序需要检查订阅是否仍然有效时,它会查询服务器,服务器与Apple验证收据,并向我的应用程序返回订阅是否过期的信息。
现在的问题是:
当响应返回latest_receipt/_info字段时,服务器应该接收该收据,并替换旧的收据以供将来验证。如果订阅时间间隔(例如,用户订阅了1个月,然后取消,然后再次订阅)或者用户更改了订阅类型(例如,从1个月更改为3个月),会发生什么情况?
原始收据是否仍然有效,并返回latest_receipt/_info字段,或者我是否需要存储新事务处理中的新收据?
我现在对自动续订的事情真的很困惑,所以我甚至不确定我的验证过程是否正确。
发布于 2012-05-04 00:14:51
我不确定你必须验证收据的所有可能性,也许它按你的方式工作,但我们做的略有不同,到那时就不会面对你的问题了。
我们将所有的收据存储在设备端(请注意,自动续费也会产生新的收据)。每当需要验证时,我们都会将最新的设备存储回执发送到服务器,在服务器上调用iTunes进行验证。之后,服务器向设备响应有关用户权限的信息。
我认为这是苹果推荐它的方式(或者至少这是我对Apple's docs的理解)。
https://stackoverflow.com/questions/10434712
复制相似问题