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

时间:2013-06-05 17:40:58

标签: iphone ios mkstorekit

朋友您好我只想知道几个问题:

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

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

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

  4. 提前致谢

1 个答案:

答案 0 :(得分:2)

我有一段时间也有这个问题。

  1. MKStoreKit现在不是一个理想的解决方案,因为它不支持iOS7和新的App Receipt系统。
  2. 2-3。 Apple documentation解释说,他们会在到期前的24小时内续签收据,然后:

      

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

    您的应用“在启动时检查交易队列”,您需要通过

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

    处理:

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

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

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

    如果您想查看我的github,我已将我的autorenewable订阅实施付诸实施。 RMStore是另一个支持iOS7的库,也适用于其他类型的购买。