我目前正在使用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();
}
}
});
它也为我提供了我在列表中消耗的物品。因此,请帮助我找到正在做的事情以获取更新的购买清单。 谢谢。
答案 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
会为您提供当前购买的商品的列表。