querySkuDetailsAsync 返回带有 BillingResult 代码 SERVICE_UNAVAILABLE 的空列表

ono*_*ono 5 java android in-app-billing billingclient

将 BillingClient 升级到 3.0.0 后,我开始让大约 20% 的用户SERVICE_UNAVAILABLE在查询应用内购买时看到。skuDetailsList 也是空的。根据该文件,SERVICE_UNAVAILABLE意味着网络出现故障,但如何在客户端返回OKstartConnection和试图查询SKU信息后发送此邮件?此外,我看到了一些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);
            });
}
Run Code Online (Sandbox Code Playgroud)

azw*_*eiz 3

我遇到了类似的问题,BillingServiceDisconnected代码返回了 -BillingClient.startConnection不幸的是,我的问题是我调用了两次。

另外需要注意的是,您需要使用新更新的库发布应用程序的AlphaBeta版本,如果您使用的是applicationSuffix,请在调试版本中测试它之前将其删除。