objective-c - 自动更新 IAP : latest_receipt field

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

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

现在的问题是:

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

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

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

最佳答案

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

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

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

关于objective-c - 自动更新 IAP : latest_receipt field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10434712/

相关文章:

ios - 如何验证URL是正确的,和/或从任意文本中提取有效的URL?

ios - 核心数据 : Sync data from Rest API

ios - 自适应 UICollectionView 单元格宽度

ios - 旋转 UILabel

ios - 数组索引的 NSUserDefaults 对象应该是什么格式

ios - 将平移手势识别器限制为特定圆圈

ios - 如何确定是否由于单击导航 Controller 生成的后退按钮而加载了 View Controller

ios - Alamofire - 多部分表单数据 key :value

ios - 将背景图像添加到 View Controller

iphone - 从 Phonegap 过渡到原生应用