购买的订阅未在库存中退回

时间:2013-06-09 16:09:10

标签: android in-app-billing

我已经在Android SDK的Google附加内容中调整了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)则不然。当我再次尝试购买订阅时,它说我已经买了它:

Error when trying to purchase the subscription

我已经尝试过我所知道的一切,但我无法理解这一点。由于常规项目按预期工作,我不明白为什么订阅不会被退回,除非我完全不依赖于它应该如何工作。

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

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

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

1 个答案:

答案 0 :(得分:0)

当我遇到this answer时,偶然想出来并决定尝试在那里链接的更新代码。

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

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

{{1}}