android - 如何从 Android 中的播放服务获取订阅类型拥有的项目?

标签 android in-app-purchase subscription

我一直在尝试检查用户是否订阅了我的应用程序的谷歌产品。我尝试过以下方法:

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"); 

这样,如果我的产品在inventroy中没有可供购买。但这总是返回 true。 (即该商品仍未购买)

我一直在使用 alpha 版本中的日志对此进行测试。 请在这里帮助我。我想知道有没有办法从播放服务中获取订阅的产品?

感谢任何帮助。提前致谢!!

最佳答案

有两种类型的产品:托管应用内产品和订阅。

如果是subscription您应该查询 Activity 订阅,而不是托管的应用内商品,使用 getPurchases 方法,并将产品类型参数设置为“subs”。

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

该调用返回一个 Bundle,其中包含用户拥有的所有 Activity 订阅。一旦订阅到期且未续订,它将不再出现在返回的 bundle 中。

关于android - 如何从 Android 中的播放服务获取订阅类型拥有的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33665140/

相关文章:

google-app-engine - 注册应用程序时自动订阅用户

iphone - 如何升级/降级 iOS 自动续订订阅

android - Playstore 订阅 - 测试策略

android - 如何使用 YouTubePlayerFragment 通过 YouTube API 播放视频?

java - 调用静态 JNI 方法以从 C++ 返回字符串

iphone - iOS沙箱环境自动续订订阅

c++ - Cocos2Dx "use of undeclared identifier"iOS游戏内购

ios - 应用内购买还原

android - 你的连接不是私有(private)的

android - 如何确定从 Google Play 游戏回合制通知中选择的比赛