7

将 BillingClient 升级到 3.0.0 后,我开始让大约 20% 的用户SERVICE_UNAVAILABLE在查询应用内购买时看到。skuDetailsList 也是空的。根据文档,SERVICE_UNAVAILABLE意味着网络已关闭,但客户端在尝试查询 SKU 详细信息后如何返回并发送此信息OKstartConnection此外,我看到了一些ERROR,即代码 6。我是否有一些不正确的实现,或者我只是向用户显示一些“发生错误。稍后再试”消息?我也没有在 Play 管理中心看到任何国家或任何可能导致这种情况的警告。

BillingClient billingClient = BillingClient.newBuilder(getContext())
            .enablePendingPurchases()
            .setListener((billingResult, list) -> {})
            .build();

    mBillingClient.startConnection(new BillingClientStateListener() {
        @Override
        public void onBillingSetupFinished(@NonNull BillingResult billingResult) {
            if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
                createSkus(mBillingClient);
            }
        }

        @Override
        public void onBillingServiceDisconnected() {}
    });


private void createSkus(BillingClient billingClient) {
    List<String> skuList = new ArrayList<>();
    skuList.add("pro");
    SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
    params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP);
    billingClient.querySkuDetailsAsync(params.build(),
            (billingResult, skuDetailsList) -> {
                // skuDetailsList empty with BillingResult code 2 (SERVICE_UNAVAILABLE)

                BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder()
                        .setSkuDetails(skuDetailsList.get(0))
                        .build();
                billingClient.launchBillingFlow(activity, billingFlowParams);
            });
}
4

1 回答 1

1

BillingServiceDisconnected我在代码返回时遇到了类似的问题-BillingClient.startConnection不幸的是,我的问题是我打了两次电话。

还有一件事要注意,您需要使用新更新的库发布应用程序的一个AlphaBeta版本,如果您使用的是applicationSuffix,请在调试版本中对其进行测试之前将其删除。

于 2020-09-04T03:17:37.370 回答