我正在构建" inapp"我的申请中的结算系统。 我执行后
skuDetails = mService.getSkuDetails(3, "my_app_package_name", "inapp", bundle);
ArrayList<String> responseList = skuDetails.getStringArrayList("DETAILS_LIST");
我总是让responseList.size()
等于0,即使我在&#34;应用内商品中设置了2个商品&#34;在开发者控制台中,我将它们传递给:
ArrayList<String> skuList = new ArrayList<String> ();
skuList.add("first_id");
skuList.add("second_id");
Bundle bundle = new Bundle();
querySkus.putStringArrayList("ITEM_ID_LIST", bundle);
该应用目前处于草稿状态。
操作结果代码为0。
我仔细检查了传递给:
的base64密钥mHelper = new IabHelper(this,Config.getBase64publicKey());
我从服务和API菜单中获得。
我在主线程或asynctask中尝试了.getSkuDetails()
。
有人可以帮助我或建议其他事情要检查吗?
答案 0 :(得分:1)
草稿应用测试不再支持测试应用内购买。因此,你得到一个空洞的回应。
https://developer.android.com/google/play/billing/billing_testing.html#draft_apps
答案 1 :(得分:0)
以前,您可以通过上传未发布的“草稿”版本来测试应用。不再支持此功能。但是,您甚至可以在将应用程序上载到Google Play商店之前对其进行静态响应测试。有关更多信息,请参阅使用静态响应进行测试。
答案 2 :(得分:0)
我在使用 BillingCient 4.0 时遇到了同样的问题。我的问题是我测试的开发版本使用了与生产版本不同的包名。
使用正确的包名称解决了该问题 - 您可以在开发版本中从计费客户端获取非零 sku 详细信息。
答案 3 :(得分:0)
就我个人而言,我错误地设置了 SkuType。例如,当我的应用是基于订阅的应用时,我使用了 params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP);
而不是 params.setSkusList(skuList).setType(BillingClient.SkuType.SUBS);
。