【问题标题】:Google Play Billing Library: Determine base plan / expiry of subscription purchaseGoogle Play 结算库:确定基本计划/订阅购买到期
【发布时间】:2022-06-19 07:28:16
【问题描述】:

我正在使用 Google Play Billing Library 5 并且有一个具有不同基本计划订阅产品。

PurchasesUpdatedListenerqueryPurchasesAsync 的回调中处理购买时,我会收到Purchase 对象列表,其中包含产品ID、购买时间以及是否自动续订。

但我如何知道用户选择了哪个基本计划,以及它何时到期?

queryPurchaseHistoryAsync 返回的PurchaseHistoryRecord 似乎也不包含此信息。

我知道 Play Developer API 返回到期时间 purchases.subscriptionsv2.get,但是为什么会出现这样的不便呢?

【问题讨论】:

  • 最初我也发现这令人困惑/令人惊讶/烦人,直到我意识到 (a) 我已经知道用户选择了哪个基本计划(因为我为该基本计划启动了购买工作流程),因此我仍然知道购买工作流程结束时是什么; (b) 无论如何,一旦购买,我真的不需要知道选择了什么基本计划,因为同一订阅产品下的所有基本计划都解锁了相同的功能......这就是我真正需要知道的。跨度>
  • @drmrbrewer:开 (a):当用户在另一台设备上打开/安装应用程序或重新安装/清除应用程序数据时,我必须恢复购买时,我不再拥有该信息。关于(b):我怎么知道什么时候必须检查订阅是否仍然有效(我可以每天左右简单地执行此操作,但用户可能更长时间没有连接到互联网......)
  • 我使用这个 API:developers.google.com/android-publisher/api-ref/rest/v3/…... 使用您从 purchase.getPurchaseToken() 获得的令牌... API 的响应会告诉您订阅是否仍然有效:developers.google.com/android-publisher/api-ref/rest/v3/…跨度>
  • 是的,这似乎是除了在服务器上管理我自己的订阅数据库之外的唯一方法。
  • 还有其他需要此信息的场景 - 我们希望让我们的用户能够在基本计划之间切换 - 例如相同订阅的“每月”和“每年”计划。要启用此功能,我们必须知道当前拥有哪个基本计划。在旧的 Billing 库中,我们为每个 duartion 提供了单独的 Subs,但至少我们可以通过在已知的 subs 之间按比例分配来横向遍历,就像这里的第三种情况一样:developer.android.com/google/play/billing/…

标签: android in-app-billing android-billing play-billing-library google-play-billing


【解决方案1】:

我得出的结论是,最好忽略整个多基本计划功能。

改为单独创建订阅,以便您拥有 Silver_Plan_Monthly --> Silver_Monthly_Base --> Silver_monthly_free_trial_offer。 然后单独订阅。 Silver_Plan_Yearly --> Silver_Yearly_Base --> Silver_yearly_free_trial_offer。 等等,无论您想要多少订阅级别,白银、黄金、白金等。

这样,当您获得用户购买时,您可以立即通过 productId 知道他们购买的子/级别/续订期,该产品将是订阅名称 (Silver_Plan_Monthly)。

这很烦人,因为必须创建所有这些子,但计费库没有提供足够的信息。

您现在应该能够在这些级别和计费周期之间轻松升级/降级用户。

【讨论】:

    猜你喜欢
    • 2021-09-16
    • 2021-05-06
    • 1970-01-01
    • 2013-03-31
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    相关资源
    最近更新 更多