问题描述
我正在尝试使用 GooglePlay Billing 库查询我的所有应用内商品,但 querySkuDetailsAsync() 中的 skuDetailsList 似乎只显示 Play 管理中心中列出的部分商品。我的意思是说,它只显示那些通过控制台直接添加的产品。但这不是我想要添加我的产品的方式。相反,我想通过使用 inappproducts.insert 方法使用 AndroidPublisher 库动态执行此操作。到目前为止,我能够通过这个库成功地将产品插入到 Play 控制台,但是在尝试查询我的所有产品时,在客户端应用程序中使用 querySkuDetailsAsync(),只有那些我通过库专门添加的产品不会出现出于某种非常奇怪的原因在应用程序中!我已将所有应用内产品 ID 添加到数组列表中,并且还进行了测试并确保产品 ID 正确(与 Google Play Console 中的 ID 匹配)。此外,我的所有产品都处于活动状态,我的应用程序已经发布,所以它应该可以运行。
但是,根据我的观察,只有那些我直接从 Play Console 添加的产品似乎会添加到 skuDetailsList 中,而我通过 Android Publisher 库插入的那些产品即使处于活动状态并已列出,也不会在应用中加载在 Play Console 中,这很奇怪。这是我用于客户端应用程序的代码的参考。
SkuDetailsParams params = SkuDetailsParams.newBuilder()
.setType(INAPP)
.setSkusList(skuList)
.build();
billingClient.querySkuDetailsAsync(params,(billingResult,skuDetailsList) -> {
System.out.println("size:"+skuDetailsList.size());
if (billingResult.getResponseCode() != BillingClient.BillingResponseCode.OK) {
System.out.println(String.format("Unable to query sku details: %d - %s",billingResult.getResponseCode(),billingResult.getDebugMessage()));
} else {
for (SkuDetails details: skuDetailsList) {
System.out.println("title -> "+details.getTitle());
System.out.println("description -> "+details.getDescription());
System.out.println("price -> "+details.getPrice());
}
setRecyclerView(skuDetailsList);
}
});
这是我用来将产品动态插入到 Google Play Console 的代码。
//insert new product
InAppProductListing listing = new InAppProductListing();
listing.setTitle("my product");
listing.setDescription("this is a description");
Map<String,InAppProductListing> mapListing = new HashMap<String,InAppProductListing>();
mapListing.put("en-GB",listing);
Inappproducts inappproducts = pub.inappproducts();
InAppProduct product = new InAppProduct();
product.setDefaultLanguage("en-GB");
product.setPackageName(packageName);
product.setSku(productID);
product.setPurchaseType("managedUser");
product.setListings(mapListing);
Price price = new Price();
price.setCurrency("INR");
price.setPriceMicros("50000000");
product.setDefaultPrice(price);
product.setStatus("active");
try {
inappproducts.insert(product.getPackageName(),product).setAutoConvertMissingPrices(true).execute();
System.out.println("Success");
} catch (Exception e) {
// Todo: handle exception
}
已经很长时间了,我似乎找不到有关此问题的任何资源/文档。我注意到通过代码添加的产品似乎只在几个小时后显示,但从控制台添加的产品会立即加载。这是我的代码的问题还是库的问题?非常感谢有关此问题的一些帮助/建议!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)