[英]How do I check if an item (Non-Consumable in-app purchase ) is already owned or not programmatically in Android Studio?
I am trying to know if I can check a non-consumable In-App purchase already own or not.我想知道我是否可以检查已经拥有的非消耗性应用内购买。 Please help me.请帮我。
Yes you can check a non-consumable
In-App Purchase
already own or not by using android BillingClient是的,您可以使用 android BillingClient检查是否已拥有的non-consumable
In-App Purchase
You have to add following dependency
in your build.gradle
您必须在build.gradle
中添加以下dependency
项
implementation 'com.android.billingclient:billing:1.2'
And use following permission
in your AndroidManifest.xml
file.并在您的AndroidManifest.xml
文件中使用以下permission
。
<uses-permission android:name="com.android.vending.BILLING" />
You can get in-app purchase
history for the current user by running queryPurchaseHistoryAsync
callback on your mBillingClient
.您可以通过在mBillingClient
上运行queryPurchaseHistoryAsync
回调来获取当前用户in-app purchase
历史记录。
Here is an example of how I have implemented it in my project.这是我如何在我的项目中实现它的示例。 hope it helps you.希望它可以帮助你。
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 ");
}
});
}
Happy Coding快乐编码
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.