我想要一个应用程序,每月提供一本新杂志作为单一的非消耗性购买,或者允许他们订阅。
我认为 Apple 正是针对您的情况创建了可自动更新的应用内购买。自动更新的类比是杂志订阅,订阅在每个订阅期结束时更新。例如,您可能订阅了一年的 NYTimes,订阅结束时,NYTimes 会向您收取另一年的费用以继续订阅。
同样,使用 iTunes 自动更新,Apple 将在订阅到期时向订阅用户收费,除非用户在到期前取消订阅。为了正常工作,您(开发人员)需要先与 iTunes 核对用户的订阅是否仍然有效,然后才能授予他们访问当前月份报摊内容的权限。换句话说,您在验证用户的订阅收据后解锁内容。
在从 Apple 获取用户当前收据后,您将从 iTunes 获取的用户当前收据存储在某处(例如 NSUserDefaults)。要验证用户的收据是否仍然有效,您需要将存储的收据提交给苹果进行验证。
顺便说一句,您应该有一种方法让用户从您的应用程序中恢复他们的收据——以防他们有新设备或从头开始重新安装您的应用程序。
我同意 Apple 的文档还有很多不足之处。我们花了几个星期的繁琐工作才让我们的应用程序正常工作。看起来其他人也花费了相似的时间来使他们的工作也有效。因此,如果您不能花时间学习它,请花时间或外包此任务。
查看应用内编程指南,了解事物应该如何工作的描述。2011 年 WWDC 的两个应用内购买视频:“iOS 和 Mac OS X 的应用内购买”和“应用发布中的新功能”也对我们有所帮助。
其他有用的链接包括:
- 自动更新订阅的有限世界,
- 应用内购买:完整演练,
- 使用 PHP和cURL 验证 Apple App Store 收据以进行应用内购买
- 所有关于应用内购买第 3 部分:反盗版措施。
您将需要最后一个链接中的代码 -createEncodedString 方法来正确地将您的收据提交到服务器进行验证。
通过这些链接,我希望我已经为您节省了大量的研究和反复试验,以使您的工作正常进行。祝你好运。