Да, вы можете проверить уже non-consumable
In-App Purchase
уже или нет, используя android BillingClient
Вы должны добавить следующие dependency
в ваш build.gradle
implementation 'com.android.billingclient:billing:1.2'
И используйте следующий permission
в своем файле AndroidManifest.xml
.
<uses-permission android:name="com.android.vending.BILLING" />
Вы можете получить историю in-app purchase
для текущего пользователя, запустив queryPurchaseHistoryAsync
callback на вашем mBillingClient
.
Вот пример того, как я реализовал это в своем проекте.надеюсь, что это поможет вам.
private BillingClient mBillingClient;
private SkuDetailsParams.Builder params;
private SkuDetails skuDetails;
protected void getPurchaseHistory() {
mBillingClient = BillingClient.newBuilder(this).setListener(this).build();
mBillingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingSetupFinished(@BillingClient.BillingResponse int billingResponseCode) {
if (billingResponseCode == BillingClient.BillingResponse.OK) {
// The billing client is ready. You can query purchases here.
Log.d(TAG, "onBillingSetupFinished ");
mBillingClient.queryPurchaseHistoryAsync(BillingClient.SkuType.SUBS,
new PurchaseHistoryResponseListener() {
@Override
public void onPurchaseHistoryResponse(@BillingClient.BillingResponse int responseCode,
List<Purchase> purchasesList) {
if (responseCode == BillingClient.BillingResponse.OK
&& purchasesList != null) {
boolean productFound = false;
for (Purchase purchase : purchasesList) {
// check is user purchased your product or not
if (purchase.getSku().equals("your in-app product id")) {
//success! your user has bought your In-App product. Woohoo!
productFound = true;
// you can check user subscription details by using purchase token
checkSubscription(purchase.getPurchaseToken());
prefs().setPurchaseToken(purchase.getPurchaseToken());
}
}
if (!productFound) {
// user not purchase your product yet.
prefs().setIsSubscribed(false);
Log.d(TAG, "product not found");
}
} else {
prefs().setIsSubscribed(false);
Log.d(TAG, "Purchase history response not ok");
}
}
});
}
}
@Override
public void onBillingServiceDisconnected() {
// Try to restart the connection on the next request to
// Google Play by calling the startConnection() method.
Log.d(TAG, "onBillingServiceDisconnected ");
}
});
}
Счастливое кодирование