【问题标题】:iOS auto-renew expired at the end of current subscription periodiOS 自动续订在当前订阅期结束时过期
【发布时间】:2011-09-24 04:34:02
【问题描述】:

我订购了一个自动更新的产品,5分钟后,它就过期了!

我认为在 Sandbox 中 5 分钟等于 1 个月,

在当前订阅期结束时(5 分钟后),不应该自动续订吗? 但它已经过期了。

【问题讨论】:

    标签: ios subscriptions


    【解决方案1】:

    这也是我的经验。沙盒环境中的自动更新不一致。在某些情况下,我看到沙盒订阅在结束前会自动续订约 5 次。但在其他情况下,它根本不会自动更新。我假设这些问题在生产环境中不存在。

    【讨论】:

      【解决方案2】:

      我也遇到过这种情况,但如果我从多任务处理托盘中终止应用程序(或在 Xcode 中停止进程)并重新启动,我会得到一个状态为“SKPaymentTransactionStatePurchased”的更新事务,该事务实质上是续订订阅。检查出。它至少会给你一些东西。非常令人沮丧的是,这是如此不一致并且与文档不一致。

      【讨论】:

      • 是的,这里也有同样的行为。 Sub 没有续订(没有新收据),商店设置说它已经过期,但自动续订显然仍然有效,5 分钟(1 个月)的订阅只有大约 10 分钟。杀死应用程序并重新启动,现在我再次订阅。是的,这很烦人。
      【解决方案3】:

      在沙盒环境中,自动续订订阅比实际时间短得多。来自this answer

         Actual duration      Sandbox duration
         1 week               3 minutes 
         1 month              5 minutes
         2 months             10 minutes 
         3 months             15 minutes 
         6 months             30 minutes 
         1 year               1 hour
      

      虽然没有记录这一事实,但根据some developers in Apple's developer forum(以及我自己的经验),订阅将在您收到 21006 错误(订阅过期错误)之前续订 5 次。因此,如果您有 1 个月的订阅,它将每 5 分钟续订 25 分钟。不过不要依赖这个事实,因为它没有正式记录,并且可能随时更改。

      【讨论】:

      • 我刚刚开始测试收据验证,但我似乎无法强制使用21006。我似乎总是得到状态 0。我使用github.com/pcrawfor/iap_verifier 来验证 NodeJS 上的收据。假设我应该始终使用verifyAutoRenewReceipt 方法?不确定verifyReceipt 做了什么,但我一直无法让它工作。
      • 在此处更新了 Apple 文档:Testing Auto-Renewable Subscriptions
      猜你喜欢
      • 2013-10-27
      • 2021-10-06
      • 1970-01-01
      • 1970-01-01
      • 2011-06-28
      • 2020-03-19
      • 1970-01-01
      • 1970-01-01
      • 2012-06-15
      相关资源
      最近更新 更多