MKStoreKit是应用程序订阅中自动更新的正确选项



朋友们好,我只是想知道一些问题:

  1. MKStoreKit适合用于自动续订订阅,或者它是否有任何漏洞,因为我使用它在有限的时间内使用内置模型订阅多个产品。

  2. 我使用MKStoreKit来处理自动更新订阅。我目前正在测试1个月的订阅(在测试中,订阅持续5分钟)。在我购买订阅后,我会等待它过期。一旦过期,我会检查订阅是否仍然有效。像我期望的那样返回false。然而,由于它是自动更新的,我希望MKStoreKit在那一点上联系苹果重新验证订阅。

  3. 是我的责任处理自动续订订阅到期时,我的意思是说,我必须在我的应用程序中实现观察者的kSubscriptionsPurchasedNotification通知。

Thanks in advance

我之前也有过这个问题。

  1. MKStoreKit现在不是一个理想的解决方案,因为它不支持iOS7和新的应用收据系统。

2 - 3。苹果公司的文档解释说,他们在过期前24小时更新收据,然后:

订阅续订成功后,Store Kit将续订的事务添加到事务队列中。您的应用程序在启动时检查事务队列,并以与任何其他事务相同的方式处理更新。请注意,如果订阅更新时应用程序已经在运行,则不会调用事务观察器;你的应用程序会在下次启动时发现更新。

你的应用程序"在启动时检查事务队列",你需要通过

设置SKPaymentTransactionObserver
[[SKPaymentQueue defaultQueue] addTransactionObserver:yourTransactionObserver];
处理:

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions

就像你第一次订阅时一样。

在测试时,你可以尝试强制关闭你的应用,然后在它过期后重新启动它,看看它是否在启动时成功更新。或者,您可以重新验证从原始订阅中保存的收据。如果发生续订,验证服务器将返回一个新的收据,然后您可以从中获得最近的过期日期。

我把我的自动更新订阅实现在github上,如果你想看看它。RMStore是另一个支持iOS7的库,也可以用于其他类型的购买。

最新更新