【发布时间】:2022-06-19 07:28:16
【问题描述】:
我正在使用 Google Play Billing Library 5 并且有一个具有不同基本计划的订阅产品。
在PurchasesUpdatedListener 或queryPurchasesAsync 的回调中处理购买时,我会收到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