5

我正在开发一个允许用户使用 In App Purchase 进行购买的应用程序,并且我想在购买后删除广告。我可以使用下面的代码成功购买

BillingFlowParams flowParams = BillingFlowParams.newBuilder()
                        .setSku("android.test.purchased")
                        .setType(BillingClient.SkuType.INAPP)
                        .build();
mBillingClient.launchBillingFlow(getActivity(), flowParams);

但是当我再次打开应用程序并在下面调用此方法时,我看不到 queryPurchaseHistoryAsync 的结果。

mBillingClient.queryPurchaseHistoryAsync(BillingClient.SkuType.INAPP, new PurchaseHistoryResponseListener() {
            @Override
            public void onPurchaseHistoryResponse(int responseCode, List<Purchase> purchasesList) {

                purchasesList.size();
            }
        });

购买清单.size() == 0

“queryPurchaseHistoryAsync”方法不能显示测试购买还是我做错了什么?

编辑:在删除并再次安装应用程序后,queryPurchaseHistoryAsync 方法是否检查购买。

4

2 回答 2

1

试试这个,它会给所有购买的物品。

mBillingClient.querySkuDetailsAsync(params.build(),
                            new SkuDetailsResponseListener() {
                                @Override
                                public void onSkuDetailsResponse(int responseCode, List<SkuDetails> skuDetailsList) {
                                    listener.onSkuDetailsResponse(responseCode, skuDetailsList);
                                }
                            });
于 2019-03-14T06:24:39.637 回答
0

mBillingClient.queryPurchases()是你所需要的全部。在每次应用程序启动时调用它,例如,每次您的主要活动恢复时。这样,您的(重新安装的)应用程序最终将检测到所有用户的购买。

于 2020-01-03T22:35:50.357 回答