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

时间:2015-11-05 19:51:52

标签: android in-app-purchase in-app-billing

我们的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);

1 个答案:

答案 0 :(得分:1)

我想应该允许。尝试维护两个不同的skuList并将其传递给getSkuDetails各自的产品类型:inapp用于应用内商品,subs用于订阅。

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

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

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

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