问题:使用 Google Play BillingClient 1.1 我怎样才能只获得未消费的购买?
背景:
在我们的 Android 应用程序中,我们想使用新的更改“旧”计费库(使用示例中的 V.3 IabHelper.java 类)
com.android.billingclient:billing:1.1
这个想法是使用
BillingClient.queryPurchases(BillingClient.SkuType.INAPP)
为了获得用户进行的所有购买的“历史”。这就是 API 所告诉的(https://developer.android.com/reference/com/android/billingclient/api/BillingClient.html#queryPurchases(java.lang.String)),它工作正常。在旧版本中,人们只会得到未消费的物品,这对于“购买历史”之类的东西是无用的。但是,如果我想知道是否有未消费的物品,我就无法再获得该信息。
对queryPurchaseHistoryAsync()
.
购买对象似乎不包含有关其消费的任何信息。我怎样才能只获得未消费的物品(或至少过滤它们)?
请注意,我知道购买最终必须在我们的服务器端进行管理。然而,在这成功之前,最好知道哪个项目已经“兑换”(消费)了。所以我不能只依赖我们的后端。
- - 编辑 - -
来自查询的购买对象 (JSON) 都如下所示:
{
"orderId": "[Id]",
"packageName": "[just the app's package]",
"productId": "[the SKU name]",
"purchaseTime": 1531224460215,
"purchaseState": 0,
"purchaseToken": "[a purchase token]"
}
因此,似乎没有什么是消费状态。
---- 编辑 2 ----
我找到了一个(坏的)解决方案。当尝试消费购买时,谷歌告诉我它的返回码是否已经被消费。但这不是我们的解决方案,因为我们希望将其“标记为未使用”,直到它在我们的服务器上被赎回。