16

我正在与客户合作构建一个使用自动续订订阅的报亭应用程序。我似乎无法找出正确的逻辑。我了解应用内购买,但以前从未搞砸过订阅。

我似乎无法全神贯注地跟踪这一点。似乎苹果希望这尽可能地困难。

我想要一个应用程序,每月提供一本新杂志作为单一的非消耗性购买,或者允许他们订阅。

我了解在购买订阅时验证收据的概念,但之后会发生什么?应用程序是否在每次启动时都会重新检查订阅以查看订阅是否是最新的?初次购买后,续订收据从何而来?

我查看了 Urban Airship,它似乎为您跟踪了这一点 - 但我没有找到用于实现订阅的示例应用程序或教程。还有其他类似的服务吗?

4

1 回答 1

30

我想要一个应用程序,每月提供一本新杂志作为单一的非消耗性购买,或者允许他们订阅。

我认为 Apple 正是针对您的情况创建了可自动更新的应用内购买。自动更新的类比是杂志订阅,订阅在每个订阅期结束时更新。例如,您可能订阅了一年的 NYTimes,订阅结束时,NYTimes 会向您收取另一年的费用以继续订阅。

同样,使用 iTunes 自动更新,Apple 将在订阅到期时向订阅用户收费,除非用户在到期前取消订阅。为了正常工作,您(开发人员)需要先与 iTunes 核对用户的订阅是否仍然有效,然后才能授予他们访问当前月份报摊内容的权限。换句话说,您在验证用户的订阅收据后解锁内容。

在从 Apple 获取用户当前收据后,您将从 iTunes 获取的用户当前收据存储在某处(例如 NSUserDefaults)。要验证用户的收据是否仍然有效,您需要将存储的收据提交给苹果进行验证。

顺便说一句,您应该有一种方法让用户从您的应用程序中恢复他们的收据——以防他们有新设备或从头开始重新安装您的应用程序。

我同意 Apple 的文档还有很多不足之处。我们花了几个星期的繁琐工作才让我们的应用程序正常工作。看起来其他人也花费了相似的时间来使他们的工作也有效。因此,如果您不能花时间学习它,请花时间或外包此任务。

查看应用内编程指南,了解事物应该如何工作的描述。2011 年 WWDC 的两个应用内购买视频:“iOS 和 Mac OS X 的应用内购买”和“应用发布中的新功能”也对我们有所帮助。

其他有用的链接包括:

  1. 自动更新订阅的有限世界
  2. 应用内购买:完整演练
  3. 使用 PHP和cURL 验证 Apple App Store 收据以进行应用内购买
  4. 所有关于应用内购买第 3 部分:反盗版措施

您将需要最后一个链接中的代码 -createEncodedString 方法来正确地将您的收据提交到服务器进行验证。

通过这些链接,我希望我已经为您节省了大量的研究和反复试验,以使您的工作正常进行。祝你好运。

于 2012-05-22T18:21:48.153 回答