在App Billing Library中,没有在消耗采购项目后提供更新的PurchaseList吗?

时间:2018-08-07 06:24:42

标签: android kotlin in-app-purchase in-app-billing in-app

我目前正在使用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();
            }
        }
    });

它也为我提供了我在列表中消耗的物品。因此,请帮助我找到正在做的事情以获取更新的购买清单。 谢谢。

1 个答案:

答案 0 :(得分:2)

您只需要使用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会为您提供当前购买的商品的列表。