【问题标题】:Purchased subscription not returned in inventory购买的订阅未在库存中退回
【发布时间】:2013-06-09 16:09:10
【问题描述】:

我已经修改了 Android SDK 的 Google extras 中的 play_billing 示例,以使用我自己的应用程序包名称和公钥。我能够通过该应用购买托管项目以及订阅。

但是,当我调用诸如 Inventory.getAllPurchases() 之类的方法时,订阅不会返回到用户的清单中,即使在重新启动并重新安装应用程序之后也是如此。

@Override
public void onQueryInventoryFinished(IabResult result, Inventory inventory)
{
    if(result.isFailure())
    {
        log.error("In-app billing inventory query failed: " + result);
        return;
    }

    for(Purchase purchase : inventory.getAllPurchases())
    {
        log.info("Purchase: " + purchase.getSku());
    }
}

输出:

Purchase: premium

如您所见,会输出常规的单次购买 (premium),但不会输出订阅购买 (paid_app)。当我再次尝试购买订阅时,它说我已经购买了:

我已经尝试了我所知道的一切,但我无法弄清楚。由于常规项目按预期工作,我不明白为什么没有返回订阅,除非我完全不知道它应该如何工作。

我已将 APK 作为草稿上传。我在测试人员列表中的电话上有我的电子邮件地址;该电子邮件不是我的开发人员电子邮件。我的订阅项目是有效的。我正在测试的手机装有最新版本的 Google Play。

编辑:仍然没有运气。但是,如果它是相关的,这是另一个更新。当我进入谷歌钱包时,没有任何交易出现(表面上是因为它们是测试交易)。当我在订阅下进入 Google Play 时,我的测试用户帐户没有列出。然而它不会让我再次购买。因此,当我查询购买的订阅时,不仅不会显示它们,而且它们也无法取消以再次测试。

这里的任何想法将不胜感激。

【问题讨论】:

    标签: android in-app-billing


    【解决方案1】:

    偶然发现this answer 并决定尝试那里链接的更新代码。

    显然SDK管理器中列出的play_billing示例过时util包中的所有类都需要替换为util来自this up-to-date project的包。

    在我用新的替换旧的util 包后,我的订阅与常规的premium 项目一起列出!!!

    Purchase: paid_app
    Purchase: premium
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-10
      • 2022-08-24
      • 2013-02-22
      • 2019-12-15
      • 2021-02-24
      • 1970-01-01
      相关资源
      最近更新 更多