检查用户是否在android java中购买了订阅



我如何编写一个函数来检查用户是否在我的应用程序打开时购买了订阅?

这些函数只告诉用户在支付过程中成功购买了订阅或取消了该过程。

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);
}

使用queryPurchasesAsync()函数检查用户是否购买了订阅。

最新更新