应用内结算 - 请求的商品无法购买

Gat*_*per 13 android in-app-purchase in-app-billing

我正在努力学习应用内结算,但我在谷歌的应用内结算示例中遇到了问题,即Dungeon.

我已经设置了应用程序,添加了我的公钥,并在makeRequestBundle()中将API_VERSION更改为1.

我已经导出并签署了该应用程序并将其上传到Google Play并将其保存为带有几张图片的草稿并激活了apk.我还添加了sword_001和potion_001作为已发布的应用内购买!

接下来,我将已签名的应用程序安装到我的手机上,但是当我尝试购买剑或药水时,我收到一个项目不可用错误"您请求的项目无法购买.".我甚至尝试使用其他设备来确保它不是因为开发人员无法购买自己的产品,而且我在两台设备上都收到相同的消息.

我错过了什么?

ces*_*rds 29

检查你的versionCode.它不能高于您在任何分销渠道(prod/beta/alpha)中的上一个已发布/未发布的版本.


nmw*_*223 22

在应用程序计费似乎充满了陷阱,但这是我发现影响购买项目的可用性和应用程序的适用性:

  1. 我的代码值得强烈基于谷歌Android演示,但我删除了很多复杂性.我有一种感觉,通过从头开始再次编写它可以产生更好的结果.
  2. 我首先得到了静态测试产品ID.
  3. 尽管文档说的是,但在我看来,即使使用测试帐户,也必须发布购买项目.无论如何,我没有工作,不管怎么说,我等了很长时间,看看他们是否会按照其他人的建议开始工作 - 他们仍然没有.
  4. 你(我还是)在没有发布应用程序的情况下无法发布购买项目,所以我做的是上传和发布应用程序,创建购买项目,发布它们(页面底部的大按钮),然后取消发布应用程序再次.这似乎留下了发布的项目.
  5. 在上传之前,应用程序必须以通常的方式签名(我是通过从Eclipse导出完成的),但是不太明显的是,加载到移动设备的应用程序也必须以相同的方式签名 - 即a(调试通过Eclipse加载到设备的版本 - 运行或调试 - 不会起作用.
  6. 我认为他们也需要相同的版本号.不是100%肯定.如果是这样,遗憾的是,安装旧版本的客户无法在没有升级的情况下购买任何东西.
  7. 当应用程序上传到Google时,它可能需要几个小时才可用,您可以获得针对应用内结算的所有正确回复.我通常会发现1-2小时.
  8. 我怀疑关于你是否使用gmail或googlemail测试帐户的这个主题的其他评论可能是红色的鲱鱼,但是对于它的价值,我的测试帐户是gmail.
  9. 我确实在互联网上遇到了一个关于如何在移动设备上更改主要帐户而无需进行硬重置(并因此丢失所有内容)的有用小注释,但遗憾的是我还没有设法再找到它.
  10. 我找到的是,手机上可以有多个Google帐户,然后选择Google Play使用的帐户.

希望这有助于某人.我不得不说它是一个非常复杂的系统,没有太多的回答,我几乎放弃了它.


sul*_*man 13

如果您的应用正在进行封闭式Alpha测试,则必须使用您的测试帐户登录选择加入的网址; https://play.google.com/apps/testing/{your.app.namespace}


pin*_*nux 6

我对此错误的体验是:

  1. 确保将签名的APK上传到开发者控制台.

  2. 确保在您的设备上安装已签名的APK,而不是在调试器中启动应用程序.

  3. 确保在开发人员控制台中创建测试帐户.

  4. 务必使用您的测试帐户登录您的设备.

  5. 确保在开发者控制台中创建应用程序结算,最后从控制台激活项目!(这是完全遵循谷歌教程后得到的那个)


Gat*_*per 1

好吧,我找到了解决我的问题的方法。我无法让 Google 的应用内购买示例正常工作,但我能够使用我在原始帖子中提到的步骤让这个应用内计费教程正常工作。

如果不出意外,这可能有助于某人查看测试应用内计费示例之一所需执行的所有步骤。