4

您好,我正在使用新的 Play Billing Library 进行应用内订阅。 https://developer.android.com/google/play/billing/billing_library.html

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

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

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

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

如何检查购买状态?

4

2 回答 2

11

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

isAutoRenewing()

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

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

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

queryPurchaseHistoryAsync(BillingClient.SkuType.SUBS, listener)

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

queryPurchases(BillingClient.SkuType.SUBS)

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

于 2018-07-31T11:31:21.223 回答
4

订阅到期后,它将不再出现在购买列表中。一些文档

于 2018-01-05T15:46:47.937 回答