iOS中自动续订订阅背后的逻辑是啥
Posted
技术标签:
【中文标题】iOS中自动续订订阅背后的逻辑是啥【英文标题】:What's the logic behind auto-renewing subscription in iOSiOS中自动续订订阅背后的逻辑是什么 【发布时间】:2012-05-28 05:30:56 【问题描述】:我正在与客户合作构建一个使用自动续订订阅的报亭应用。我似乎无法找出正确的逻辑。我了解应用内购买,但以前从未搞砸过订阅。
我似乎无法全神贯注地跟踪这一点。似乎苹果希望这尽可能地困难。
我想要一个应用程序,每月提供一本新杂志作为单次非消耗性购买,或允许他们订阅。
我了解在购买订阅时验证收据的概念,但之后会发生什么?应用程序是否在每次启动时都会重新检查订阅以查看订阅是否是最新的?初次购买后,续订收据从哪里来?
我查看了 Urban Airship,它似乎为您跟踪了这一点 - 但我没有找到用于实现订阅的示例应用程序或教程。还有其他类似的服务吗?
【问题讨论】:
您是如何使用订阅的产品 ID 进行管理的? 【参考方案1】:我想要一个应用程序,每月提供一本新杂志作为单次非消耗性购买,或允许他们订阅。
我认为 Apple 正是针对您的情况创建了可自动更新的应用内购买。自动更新的类比是杂志订阅,订阅在每个订阅期结束时更新。例如,您可能订阅了一年的 NYTimes,订阅结束时,NYTimes 会向您收取另一年的费用以继续订阅。
同样,由于 iTunes 可自动续订,Apple 将在订阅到期时向订阅用户收费,除非用户在到期前取消订阅。为了正常工作,您(开发人员)需要先与 iTunes 核对用户的订阅是否仍然有效,然后才能授予他们访问当前月份报摊内容的权限。也就是说,您在验证用户的订阅回执后解锁内容。
在从 Apple 获得后,您将从 iTunes 获得的用户当前收据存储在某个地方(例如 NSUserDefaults)。要验证用户的收据是否仍然有效,您需要将存储的收据提交给苹果进行验证。
顺便说一句,您应该有一种方法让用户从您的应用中恢复收据——以防他们有新设备或从头开始重新安装您的应用。
我同意 Apple 提供的文档还有很多不足之处。我们花了几个星期的繁琐工作才让我们的应用程序正常工作。看起来其他人也花费了相似的时间来使他们的工作也有效。因此,如果您没有能力花时间学习,请花点时间或外包此任务。
查看In-app programing guide 以了解如何操作。 2011 年 WWDC 的两个应用内购买视频:“ios 和 Mac OS X 的应用内购买”和“应用发布中的新功能”也对我们有所帮助。
其他有用的链接包括:
-
The limited world of auto-renewable subscriptions,
In App Purchases: A Full Walkthrough,
Verifying Apple App Store Receipts For In App Purchases With php and cURL 和
All About In-App Purchases Part 3: Anti-Piracy Measures。
您需要最后一个链接中的代码 -createEncodedString 方法才能正确地将您的收据提交到服务器进行验证。
通过这些链接,我希望我已经为您节省了大量的研究和反复试验,以使您的工作正常进行。祝你好运。
【讨论】:
非常感谢您的信息。你的几段比苹果文档更好地解释了这一点。我会在早上查看您的链接,但我有一个问题 - 当应用程序检查当前收据是否有效时 - 收据数据来自哪里?是否类似于只是进行新购买,还是有一种方法可以以某种方式请求当前收据? 您将收据返回给 SKPurchase 委托方法——就像非消耗性收据一样。如果订阅成功,您检查调用结果并撕下收据。 所以这就像进行新购买,或者续订购买只是坐在iTunes服务器上等待用户再次登录和应用程序看到它?再次感谢您提供的重要信息。 续订购买通常发生在当前订阅到期之前。新购买的东西会定期在设备上刷新——通常不是确定性的(据我从我的测试或从其他人测试的大量悲惨故事中可以看出)。但它确实得到了刷新。强制刷新的另一种方法是让用户执行恢复操作(请记住,我之前提到过您应该为用户提供执行恢复的方法)。 @Sunny 你能帮我提供链接吗:***.com/questions/16102282/…以上是关于iOS中自动续订订阅背后的逻辑是啥的主要内容,如果未能解决你的问题,请参考以下文章