我们的一些 Android 应用内商品是订阅,有些不是,这是允许的吗?

Some of our Android in-app products are subscriptions, some are not, is this allowed?

我们的 Android 应用正在尝试从 Google Play 获取应用内商品的价格。我们的一些应用内产品是订阅,有些不是。当调用应用内结算服务的 getSkuDetails 方法获取价格时,我们只允许传入一个 type 字符串作为第三个参数。

现在该字符串设置为 "inapp",但除非我们所有的应用内商品都属于该类型,否则它不会起作用。所以这让我想知道:你们可以在 Android 中有不同的应用内产品类型吗?例如,某些产品是否可以订阅,而其他产品是否可以消费?

我们的代码如下,感谢任何人可以提供的帮助。

IInAppBillingService service = activity.getBillingService();

ArrayList<String> skuList = new ArrayList<String>();
skuList.add("in_app_subscr_1");
skuList.add("in_app_subscr_2");
skuList.add("in_app_non_subscr_1");

Bundle querySkus = new Bundle();
querySkus.putStringArrayList("ITEM_ID_LIST", skuList);
Bundle skuDetails = service.getSkuDetails(3, 
    activity.getPackageName(), "inapp", querySkus);

我想应该是允许的。尝试维护两个不同的 skuList 并将其传递给具有相应产品类型的 getSkuDetailsinapp 用于应用内产品,subs 用于订阅。

对于应用内产品和订阅,您可能必须遵循单独的工作流程。例如。要检索有关用户从您的应用进行的购买的信息,请调用 getPurchases 方法并将产品类型参数设置为应用内产品的“inapp”。

Bundle ownedItems = mService.getPurchases(3, getPackageName(), "inapp", null);

要查询有效订阅,请使用 getPurchases 方法并将产品类型参数设置为“subs”。

Bundle activeSubs = mService.getPurchases(3, "com.example.myapp",
                   "subs", continueToken);