Как проверить, принадлежит ли элемент (не расходуемая в приложении покупка) уже программно или нет программно в Android Studio? - PullRequest
0 голосов
/ 22 сентября 2019

Я пытаюсь узнать, могу ли я проверить уже не приобретенную в приложении покупку In-App или нет.Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 24 сентября 2019

Да, вы можете проверить уже 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 ");
            }
        });


    }

Счастливое кодирование

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...