【问题标题】:How to check purchase state of subscription in all new Play Billing Library?如何在所有新的 Play Billing Library 中查看订阅的购买状态?
【发布时间】:2017-12-31 08:38:15
【问题描述】:

您好,我正在为应用内订阅使用新的 Play 结算库。 https://developer.android.com/google/play/billing/billing_library.html

一切都很完美,并且能够订阅该产品。但我没有找到任何方法来检查订阅的购买状态。我的意思是它是活跃的还是过期的。

在文档中它说:然后您可以在 Purchase 对象上调用各种方法来查看有关该项目的相关信息,例如其购买状态或时间。

但是Purchase Object中没有购买状态方法,查看下方链接 https://developer.android.com/reference/com/android/billingclient/api/Purchase.html

也看看这个视频: https://www.youtube.com/watch?v=9chvh1WYCvw&feature=youtu.be&t=301

如何查看购买状态?

【问题讨论】:

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


    【解决方案1】:

    这是一个老问题,您可能已经解决了。我刚刚开始使用新库,我也有同样的问题。阅读购买类的 javadoc 我认为你必须使用:

    isAutoRenewing()
    

    对于任何已取消的订阅,这将返回 false。对于任何处于活动状态或处于宽限期内的订阅,它都会返回 true。

    只是对此的更新。这不适用于已取消且尚未过期的订阅。

    我觉得奇怪的是,上述评论员似乎存在分歧。进一步的调查显示,两个不同的购买查询给出了不同的结果——javadoc 似乎没有明确说明。

    queryPurchaseHistoryAsync(BillingClient.SkuType.SUBS, listener)
    

    正如其 javadoc 解释的那样,将返回所有内容 - 包括所有过期的订阅。使用它似乎没有办法区分活动订阅和非活动订阅。这会返回当前在 Google 服务器上的历史记录。

    queryPurchases(BillingClient.SkuType.SUBS)
    

    仅返回当前的活动订阅。它立即返回一个缓存的结果。

    【讨论】:

      【解决方案2】:

      订阅到期后,它将不再出现在购买列表中。 Some documentation

      【讨论】:

      • 是的,我遇到了同样的解决方案。 PurchasesList 仅包含活动订阅。如果 PurchasesList 大小为零,则表示没有有效订阅。
      • 我无法确认。对我来说,订阅仍然是列表中的成员。
      • 我同意@romanescu 同样的问题,我如何检测订阅何时结束。如果子列表中始终可见,则应添加状态“过期/活动”或类似的内容
      • 一旦订阅过期,它将不再在该列表中可用(从 Playstore 应用程序取消订阅等待它过期)。非常适合我。
      • @romaneso 我面临同样的问题。你找到解决办法了吗?
      猜你喜欢
      • 2019-09-11
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 2014-03-27
      • 2012-12-27
      • 2023-01-20
      • 2021-06-17
      相关资源
      最近更新 更多