Google在应用内购买获取产品列表

问题描述 投票:9回答:4

我从here找到以下代码从google play store获取产品列表

ArrayList skuList = new ArrayList();
skuList.add("premiumUpgrade");
skuList.add("gas");
Bundle querySkus = new Bundle();
querySkus.putStringArrayList(“ITEM_ID_LIST”, skuList);

有没有办法获得动态产品列表?在这里它的硬编码。当我在应用程序启动后添加新产品时会发生什么?

android google-play-services android-billing
4个回答
31
投票

目前无法使用Google API。

创建一个包含当前JSONSKUs文件并将其放在某个服务器上。

在您的应用中,首先从服务器网址加载此文件,然后使用此SKUs列表通过Google API检索产品详细信息。

致谷歌:为此提供功能,呐喊你吧!


6
投票

如果您不想实现从您自己的服务器获取产品列表的逻辑,另一种选择是使用预定义的“虚拟”产品ID,例如产品ID槽:

private static final String[] PRODUCTIDS = {"product1", "product2", "product3", etc. };

对于不存在的产品ID,getSkuDetails函数将仅返回null。因此,如果您不希望产品列表变化太频繁或过多,那么您可以在应用中定义少量产品ID,并跳过getSkuDetails返回的空值。

如果要添加新产品,只需使用开发人员控制台中下一个未使用的插槽定义的ID,您的应用程序将在不更新应用程序的情况下列出该ID。

删除产品可能会非常棘手,因为仍会返回非活动和已删除的产品ID,因此您可以使用其描述字段标记产品已删除 - 使用预定义的常量,例如“不可用”并检查其在您的应用中的存在。如果产品描述等于此常量,则只需跳过它并且不列出它。

我知道我知道。这是一个肮脏的黑客。但它的确有效。


1
投票

这是不可能的。如果您能够获取更新的inapp产品列表,您将如何在不更改应用程序代码的情况下提供这些新产品?如果您更改产品列表,则必须发布处理新产品的应用程序的更新。

在不更改应用程序代码的情况下获取新产品的唯一原因是更改产品本身的价格,但这意味着违反Google条款和条件


0
投票

现在可以使用Inappproducts: list API:

列出Android应用的所有应用内商品,包括订阅和托管的应用内商品。

另外,请阅读使用上述API所需的Authorization

© www.soinside.com 2019 - 2024. All rights reserved.