如何处理应用内计费库中的多个用户? (最佳实践)

Posted

技术标签:

【中文标题】如何处理应用内计费库中的多个用户? (最佳实践)【英文标题】:How to handle multiple users in In-App Billing Library ? (Best Practice) 【发布时间】:2020-12-23 15:37:42 【问题描述】:

我正在我的应用程序中实现 Google 的应用内结算库,并想知道处理以下情况的最佳方法

    多设备和单用户

用例:

拥有 Google Play 商店帐户 G1 的用户 U1 订阅了订阅 S1。 现在用户 U1 从应用程序中注销,用户 U2 登录应用程序。

查询:

如果用户 U2 尝试订阅订阅 S1 会发生什么? 我们是否应该通过说“此订阅已被此 Google 帐户的其他用户订阅”来限制用户 U2?
    单设备多用户

用例一:

拥有 Google Play 商店帐户 G1 的用户 U1 订阅了订阅 S1。 拥有 Google Play 商店帐户 G2 的用户 U1 尝试订阅订阅 S1。

查询:

我们是否应该通过说“您已通过其他 Google 帐户订阅此订阅”来限制用户 U1?

用例二

拥有 Google Play 商店帐户 G1 的用户 U1 订阅了订阅 S1。 拥有 Google Play 商店帐户 G2 的用户 U1 尝试订阅订阅 S2。

查询:

我们应该允许用户使用不同的 Google 帐户订阅不同的订阅吗?

一般查询:

我们是否应该将每个用户映射到不同的 Google 帐户,如果用户尝试使用其他 Google 帐户进行购买,请限制它或 请他先解除与现有关联的 Google 帐户的关联? 我们可以从使用同一个 Google Play 帐户的 2 位用户那里订阅(购买)订阅吗? (说使用不同的accountIdhttps://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid)

我希望就最佳实践和事实对我的疑问作出答复。

【问题讨论】:

【参考方案1】:

应用内商品的购买和订阅都与所使用的 Google 帐户严格关联。

您无法通过 Google 帐户了解其他帐户的购买情况,如果可能的话,这将是一个严重的安全问题。

如果两个用户(两个 Google 帐户)想使用同一个订阅,则必须分别购买。

【讨论】:

以上是关于如何处理应用内计费库中的多个用户? (最佳实践)的主要内容,如果未能解决你的问题,请参考以下文章

是否可以一次购买多个应用内产品?

Yii2 HOW-TO:最佳实践

Stripe 定期/订阅计费最佳设计/实践?

PHP - 如何处理应该存在于应用程序命名空间中的真实测试双打?

管理具有不同价格的多个并发订阅的计费周期的最佳方法是啥?

如何处理应用程序启动时发生的 ASP.NET 应用程序错误以及 MVC 视图中的传输和显示错误?