为iOS提供自动续订订阅

我发现在应用程序处于活动状态并正在运行时,永远不会交付已过期的自动续订订阅的续订,而是在应用程序从后台或启动时唤醒时。

换句话说,如果您正在使用该应用程序,并且订阅过期,则在用户继续使用该应用程序时,它将不会被传递到应用程序(假设它是自动续订和有效等)。

这种行为似乎没有被Apple记录,其他任何有此经验的人都可以证实吗?

显然,人们可以检测到sub已经过期,然后让用户有机会检查他们的订阅状态和restoreCompletedTransactions,这将引入新的订阅 – 但我只是想知道我们是否做错了,或者这个行为是正常。

谢谢。

是。 这也是我所经历的。 在继续之前,请参阅以下post,了解您可能希望远离自动续订订阅的原因:

  • Marco Arment关于汽车可再生订阅的有限世界的文章 ,以及
  • 关于此SO问题的评论: 自动续订订阅 – 与非续订订阅的差异

当您的应用程序变为活动状态时,这似乎会触发App Store向您的应用发送任何新的自动续订订阅收据。 但你不应该依赖它。 并且,您无需restoreCompletedTransactions来获取最新收据。

您可以查看我的另一个答案 ,了解有关此主题的更多详细信息。 您应该做什么(基于Apple的文档和一些实验)是在您的服务器上存储收据。 然后,当您想要检查某人的订阅是否已自动续订时,请按照Apples程序通过iTunesvalidation其中一个收据 。 Apple将回复有关该收据的信息以及该订阅中的最新收据。 如果它与您发送的不同,那么您就知道发生了自动续订。