将 google play/apple 商店自动续订订阅与内部帐户同步的预期行为是什么?

What is expected behavior for syncing google play/apple store auto-renewing subscriptions with internal account?

我们目前正在为 Google 实施自动续订订阅(我们从 Apple 的非续订开始,并在服务器端实施了重复数据删除和验证流程),现在的主要问题是以下案例:

  1. 用户在 Google Play 中有 Google 帐户 A 并且在应用程序中有 内部帐户 A
  2. 用户购买了自动续订订阅。 (现在绑定到 内部帐户 A
  3. 他退出 内部 A 并登录到 内部 B

所以问题是内部 B 的预期状态应该是什么?基本上,游戏市场(因此 Google BillingClient)将有关于订阅的信息,因为它绑定到 Google 帐户,但我们预计订阅仅对 1 个内部帐户有效(这将是因为重复数据删除过程)。但是在这种情况下,用户会遇到一种奇怪的情况,即之前已经购买了订阅(当他使用帐户 A 登录时),但尚未生效,因此他无法为 内部帐户 B[ 购买=32=].

我试图在以下 link 下找到答案,但看起来他们对这种情况并没有很好的描述:https://developer.android.com/google/play/billing/billing_subscriptions

在我看来,我们应该为这种情况提供一些用户体验,例如:“看起来你已经订阅了,但你的帐户有误”。但是,如果有人能回答 Google/Apple 审核小组在这种情况下的期望问题,我们将不胜感激。

我认为 Apple 没有关于订阅的正确行为的实际 "policy"。我不希望他们让你失望,除非你在订阅方面做了一些非常过分的事情。

在某种程度上,这是可以理解的,因为存在各种细微差别,它的实现确实取决于应用程序的处理方式。

我非常怀疑他们会针对这种情况进行测试。这不仅需要花费太多时间来测试您的应用程序,还需要对您的应用程序的工作原理有更深入的了解。我还认为 Google 在实践中是相似的。

如果您查看其他大型订阅应用程序,例如 Netflix 或 Spotify,您可以了解一些 UI 他们如何管理这一点的想法。如果 内部帐户 A 在 iOS 上订阅,然后在 Android 上登录,您可以在 UI 中显示订阅是通过以下方式计费和管理的iTunes.

在您描述的情况下,如果内部帐户B登录,那么预期的UI将处于"non-subscribed"状态。有几个边缘案例需要考虑:

  1. 如果内部帐户 B 尝试从以下设备购买订阅 已经购买了,会报错订阅已经 活跃.

  2. 确保内部帐户 B 无法恢复购买 内部账户 A.

  3. 购买的收据

RevenueCat,我们将收据文件和原始交易 ID 存储在进行原始购买的用户记录中,这样我们就可以检测是否有不同的用户试图恢复相同的购买(通过原始交易 ID)。

就政策而言。唯一的官方政策是用户需要一种方法来恢复以前购买的订阅。如果他们可以通过简单地登录 内部帐户 来进行恢复,那就足够了。你想如何处理 "app store account sharing" 的情况取决于你。与移动订阅的大多数事情一样,这是 development complexity 与风险的权衡。