簡體   English   中英

在谷歌播放計費庫中成功購買后,谷歌播放計費購買結果顯示空列表(原生安卓)

[英]Google play billing purchase result shows empty list after a successful purchase in the google play billing library (Native android)

購買成功后,Google Play 計費庫中的 Google Play 計費購買結果顯示為空列表。

購買產品時,它會按預期返回列表。 導航到兩個屏幕后,如果我再次檢查購買屏幕,同一個應用程序的購買列表為空。

為什么導航到屏幕后采購清單是空的?

 if (billingClient.isReady()) {
                Purchase.PurchasesResult purchasesResult = billingClient.queryPurchases(BillingClient.SkuType.INAPP);
                List<Purchase> purchases = purchasesResult.getPurchasesList();
               
                if (purchases.size() > 0) {
                    for (Purchase pur : purchases) {
                        String thisSku = pur.getSkus().get(0);
                        if (thisSku.equals(AD_REMOVAL_SKU)) {
                            return true;
                        }
                    }
                } 

    billingClient = BillingClient.newBuilder(context).enablePendingPurchases().setListener(purchasesUpdatedListener).build();

 private PurchasesUpdatedListener purchasesUpdatedListener = new PurchasesUpdatedListener() {
        @Override
        public void onPurchasesUpdated(BillingResult billingResult, List<Purchase> list) {
            // To be implemented in a later section.
            LogUtils.LOGI(TAG, "billingResult on billingResult" + billingResult.getResponseCode());
            if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK && list != null) {
              
                Toast.makeText(context.getApplicationContext(), list.toString(), Toast.LENGTH_LONG).show();
                Toast.makeText(context.getApplicationContext(), billingResult.toString(), Toast.LENGTH_LONG).show();
                Purchase info = list.get(0);
              
                for (Purchase purchase : list) {
                    Purchase.PurchasesResult purchasesResult = billingClient.queryPurchases(BillingClient.SkuType.INAPP);
                 
                    if (purchase.getPurchaseState() == Purchase.PurchaseState.PURCHASED) {
                        if (info.getSkus().get(0).equals(AdsRemovalHelper.SKU)) {
                            ConsumeParams consumeParams = ConsumeParams.newBuilder().setPurchaseToken(purchase.getPurchaseToken()).build();
                            LogUtils.LOGI(TAG, "Consume params ===" + consumeParams);
                            billingClient.consumeAsync(consumeParams, new ConsumeResponseListener() {
                                @Override
                                public void onConsumeResponse(BillingResult billingResult, String s) {
                                    if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK ) {
                                        LogUtils.LOGI(TAG, "Consume String ===" + consumeParams);
                                        Toast.makeText(context.getApplicationContext(), purchase.getSkus().toString(), Toast.LENGTH_LONG).show();
                                    }
                                }
                            });
                          
                        }
                    } else if (purchase.getPurchaseState() == Purchase.PurchaseState.PENDING) {
                         LogUtils.LOGI(TAG, "ConsumeString ===" );
                    } else if (purchase.getPurchaseState() == Purchase.PurchaseState.UNSPECIFIED_STATE) {
                          LogUtils.LOGI(TAG, "Consume S11111tring ===" );
                    }

} }

由於queryPurchasesqueryPurchasesAsync如果您使用的是 Billing 4.0 API,請嘗試使用queryPurchasesAsync https://developer.android.com/reference/com/android/billingclient/api/BillingClient#queryPurchases(java.lang.String)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM