繁体   English   中英

如何在 Android Studio 中检查项目(非消耗性应用内购买)是否已经拥有或未以编程方式?

[英]How do I check if an item (Non-Consumable in-app purchase ) is already owned or not programmatically in Android Studio?

我想知道我是否可以检查已经拥有的非消耗性应用内购买。 请帮我。

是的,您可以使用 android BillingClient检查是否已拥有的non-consumable In-App Purchase

您必须在build.gradle中添加以下dependency

implementation 'com.android.billingclient:billing:1.2'

并在您的AndroidManifest.xml文件中使用以下permission

<uses-permission android:name="com.android.vending.BILLING" />

您可以通过在mBillingClient上运行queryPurchaseHistoryAsync回调来获取当前用户in-app purchase历史记录。

这是我如何在我的项目中实现它的示例。 希望它可以帮助你。

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


    }

快乐编码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM