在 App Billing Library 中不提供消费 Purchase Item 后更新的 PurchaseList?

In App Billing Library doesn't provide the Updated PurchaseList after Consuming the Purchase Item?

我目前正在使用 In App Billing Library 在 App Purchase 中实施,

使用以下方法消耗购买的物品后:

mBillingClient.consumeAsync(purchaseToken, new ConsumeResponseListener() {
                @Override
                public void onConsumeResponse(int responseCode, String purchaseToken) {
                    if (responseCode == BillingClient.BillingResponse.OK) {
                        Toast.makeText(getApplicationContext(), "Item Consumed Successfully..." + purchaseToken, Toast.LENGTH_LONG).show();
                    }
                }
            });
            break;

当我再次打开应用程序并想使用以下方法检索购买列表的列表时:

mBillingClient.queryPurchaseHistoryAsync(BillingClient.SkuType.INAPP, new PurchaseHistoryResponseListener() {
        @Override
        public void onPurchaseHistoryResponse(int responseCode, List<Purchase> purchasesList) {
            if (responseCode == BillingClient.BillingResponse.OK) {
                purchases = purchasesList;
                retrieveItemList();
            }
        }
    });

它还提供了我在列表中消费过的项目。所以,帮我找出我做错了什么来获得更新的购买清单。 谢谢

你只需要使用 queryPurchase 方法而不是 queryPurchaseHistoryAsync 如下:

mBillingClient.queryPurchase(BillingClient.SkuType.INAPP, new PurchaseHistoryResponseListener() {
    @Override
    public void onPurchaseHistoryResponse(int responseCode, List<Purchase> purchasesList) {
        if (responseCode == BillingClient.BillingResponse.OK) {
            purchases = purchasesList;
            retrieveItemList();
        }
    }
});

这两种方法的区别在于queryPurchaseHistoryAync会为您提供您一生中购买过的所有物品的清单,即使购买的物品已被使用;而 queryPurchase 将为您提供当前购买的商品列表。