Play Billing Library v1.0:queryPurchases结果

时间:2018-04-24 23:08:55

标签: android in-app-billing in-app-subscription

我有一个Android应用,使用https://developer.android.com/google/play/billing/billing_library.html通过应用内结算提供自动续订订阅。

我使用https://github.com/googlesamples/android-play-billing/中经过轻微修改的BillingManager.java来帮助进行采购管理。

之前,在发布之前(大约4-8周前),每当订阅试用结束并且订阅自动续订时,我会在查询购买时继续在购买列表中收到相应的购买对象:

PurchasesResult subscriptionResult = mBillingClient.queryPurchases(SkuType.SUBS);
List<Purchase> list = purchasesResult.getPurchasesList();

(参见queryPurchases here

OrderID根据自原始订单以来发生的续订数量附加了递增的计数器值(如订阅订单编号here中所述)。

在过去几天,似乎每当客户的订阅转换为试用付款或随后续订时,queryPurchases此后都会返回购买。我期望为有活跃订阅的用户收到一个Purchase对象(并且在测试期间得到了这个 - 我在我的数据库中有数据来确认它。)

因此,应用程序不再调用我们的后端服务器来更新订阅有效性,并且拒绝用户访问他们收取的功能 - 不是很好。

我可以在Google Play控制台上查看客户的订单(增加的订单ID),订阅显示为有效(且未取消),并且购买令牌可用并且可以进行验证。

有没有人知道为什么queryPurchases会在第一次续订后停止返回有效的购买? (购买在续订日期之前按预期退回。)

我使用当前的结算客户端库,如下所示:

implementation 'com.android.billingclient:billing:1.0'

(作为一种解决方法,我可以通过定期重新检查所有提交的购买代币来在后端修复此问题,但我更喜欢按应用程序触发的方式执行此操作,以前工作正常。)

0 个答案:

没有答案