【问题标题】:How to handle auto-renewal subscription ending during app life time如何在应用程序生命周期内处理自动续订订阅结束
【发布时间】:2020-02-24 11:04:27
【问题描述】:

如果用户正在运行每周自动续订订阅,该订阅在 4:00 到期(然后它将续订)并且用户在 3:55 到 4:10 之间使用应用程序,例如,如何你想处理它吗?

我注意到 paymentQueue(_:updatedTransactions:) 不会在应用生命周期内触发(也许我错了?),所以我无法获得通知我用户仍在订阅的新续订.

在这种情况下,我是否需要调用恢复购买来强制检测续订,或者我是否应该考虑在应用被终止之前用户仍在订阅(因此在下一次启动时,将触发 paymentQueue)?或者也许是第三种解决方案?

【问题讨论】:

    标签: ios in-app-purchase storekit


    【解决方案1】:

    得到了 Apple StoreKit 工程师的官方答复:

    Apple 认为这是一种极端情况,并建议您不要实时处理订阅到期(如果可能)。

    这意味着,如果您的订阅将您的用户转变为高级用户,只需在应用的整个生命周期内保持高级标志为真(直到应用被用户或系统杀死)。

    下次重新启动应用时,您可以依赖潜在的新 paymentQueue:updatedTransaction。

    【讨论】:

      【解决方案2】:

      您可以通过注册一个计时器来做到这一点,然后 a) 触发恢复或 b) 重新启动应用程序或 c) 使用您的服务器进行验证,该服务器处理服务器到服务器的通知。

      我不知道您正在开发什么类型的应用程序,以及用户不能使用该应用程序的时间超过其订阅期限的重要性,而是在未经用户明确同意的情况下强制用户输入其凭据(a 点)或重新启动应用程序(b 点)将是糟糕的用户体验。因此,如果它很重要,那么您可能需要使用服务器到服务器的通知。否则,让用户使用您的应用,直到他关闭它并在您的设备上下次启动时验证收据。

      服务器到服务器通知是一种用于自动更新订阅的服务。 App Store 会向您的服务器发送订阅状态实时更改的通知。

      详情见here

      【讨论】:

      • 你的意思是即使paymentQueue的updatedTransaction没有被调用,服务器仍然可以得到新的续费回执?
      • 是的。我已经编辑了我的答案,因此我可以更好地链接到 Apple 的相关文档。
      猜你喜欢
      • 2022-12-14
      • 2018-08-28
      • 2018-05-19
      • 2011-09-24
      • 2011-07-16
      • 2021-06-21
      • 2017-06-16
      • 2019-07-30
      • 2015-06-26
      相关资源
      最近更新 更多