我一直在尝试检查用户是否订阅了我的应用的Google产品。我尝试了以下方法:
Bundle ownedItems = mService.getPurchases(3, getPackageName(),
"inapp", null);
if (ownedItems != null) {
int response = ownedItems.getInt("RESPONSE_CODE");
if (response == 0) {
ArrayList ownedSkus = ownedItems
.getStringArrayList("INAPP_PURCHASE_ITEM_LIST");
这总是将ownedSku计数返回为0(即,没有订阅的项目从播放服务返回)
也
isSkuPurchased = inventory.hasPurchase("MY_SKU_VALUE");
通过这种方式,如果我的产品不能用于购买。但这总是回归真实。 (即,该物品仍未购买)
我一直在使用alpha版本的日志测试它。 请帮帮我。我想知道有没有办法从播放服务中获得订阅的产品?
感谢任何帮助。在此先感谢!!
答案 0 :(得分:3)
有两种类型的产品:托管应用内商品和订阅。
如果是subscription而不是托管的应用内商品,则应查询有效订阅,使用getPurchases
方法,并将产品类型参数设置为“subs
”
Bundle activeSubs = mService.getPurchases(3, "com.example.myapp",
"subs", continueToken);
该调用返回一个Bundle,其中包含用户拥有的所有活动订阅。一旦订阅到期而没有续订,它将不再出现在返回的Bundle中。