我坚持使用Google In App v3 - 我在没有消费的情况下测试了购买(例如,当应用程序在购买和消费之间崩溃时) - 现在我没有找到出路。
如果我再次尝试购买,则表示您已经拥有该商品'。但是,当我测试所有权时,它说我不拥有它:
Inventory inv = mHelper.queryInventory(false, null);
inv.getPurchase(sku); // null
inv.hasPurchase(sku); // false
我也不能吃东西,因为我没有购买消费。怎么在这里继续?
修改 重现如下:购买应用内消耗品,然后禁用互联网连接。之后,您再也无法在几个小时内再次购买该产品。刚刚从Play商店(Diamond Digger Saga)的流行应用程序进行测试,我的行为完全相同。真的没有可能避免/解决这个问题吗?
答案 0 :(得分:0)
我遇到了这个问题。我手机上有两个Google帐户,一个是开发者帐户(我愚蠢地使用了我的个人帐户),另一个是我在开发者控制台中注册的测试帐户。我已经从手机上的帐户中删除并重新添加了开发者帐户,这使我可以从我的应用程序中进行测试购买,并且考虑开发者帐户是否是此列表中的第二个,它将使用第一个用于购买。
唉,经过几次应用程序运行,我遇到了你的问题。我放弃了尝试两者并从我的手机中删除了开发者帐户。虽然非常不方便,但这解决了这个问题并允许我测试购买,消费,查询等。答案 1 :(得分:0)
如果您正确执行所有操作并且代码正常 - 很可能问题出在缓存的Google Play服务数据中。
例如,当您在设备A上进行测试购买时 - 在设备B上(使用相同的Google帐户登录),您将在未经购买的情况下继续接收inventory
一段时间。您的inventory.getPurchase(sku)
将返回null
而inventory.hasPurchase(sku)
将返回false
;
要解决此问题,请尝试打开Google Play,然后使用“最近使用的应用”按钮将其关闭(点按它然后将应用程序移开),这将比平时更快地终止应用程序"返回"按钮。然后关闭你的设备几分钟。
我们的目标是让Google Play更新它的缓存。
请确保您使用wifi,因为如果您使用移动数据,它可能很少更新。 最终数据将会更新,您将获得购买。 在我的情况下,它发生在5分钟或smth后。