问题描述
将BillingClient升级到3.0.0后,我开始获得大约20%的用户在查询应用内购买时看到SERVICE_UNAVAILABLE
的信息。 skuDetailsList也为空。根据文档,SERVICE_UNAVAILABLE
暗示网络已关闭,但是客户端如何通过OK
返回startConnection
并在尝试查询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);
});
}
解决方法
我遇到了类似的问题,BillingServiceDisconnected
代码又回来了-不幸的是,我两次打电话给BillingClient.startConnection
。
还需要注意的一件事是,您需要使用新更新的库发布应用程序的Alpha
或Beta
版本,如果您使用的是applicationSuffix
,请先删除该版本您可以在调试版本中对其进行测试。