如何编写一个函数,在应用打开时检查用户是否已购买订阅?
这些功能仅告知用户在支付过程中成功购买订阅或取消该过程。
private PurchasesUpdatedListener purchasesUpdatedListener = new PurchasesUpdatedListener() {
@Override
public void onPurchasesUpdated(BillingResult billingResult, List<Purchase> purchases) {
// To be implemented in a later section.
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK && purchases != null) {
for (Purchase purchase : purchases) {
handlePurchase(purchase);
Log.d("purchaseListners", purchase.toString());
}
Log.d("purchaseListners", "true");
} else if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.USER_CANCELED){
// Handle an error caused by a user cancelling the purchase flow.
Log.d("purchaseListners", "false");
Constant.subscription = false;
} else {
Log.d("purchaseListners", "shh");
}
}
};
void handlePurchase(Purchase purchase) {
ConsumeParams consumeParams =
ConsumeParams.newBuilder()
.setPurchaseToken(purchase.getPurchaseToken())
.build();
ConsumeResponseListener listener = new ConsumeResponseListener() {
@Override
public void onConsumeResponse(BillingResult billingResult, String purchaseToken) {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
Constant.subscription = true;
// Handle the success of the consume operation.
Log.d("purchaseListners", billingResult.toString());
}
}
};
billingClient.consumeAsync(consumeParams, listener);
}
1条答案
按热度按时间aoyhnmkz1#
要检查用户是否已购买订阅,请使用queryPurchasesAsync()函数。