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

时间:2012-06-13 17:55:05

标签: android in-app-purchase in-app-billing

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

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

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

接下来我将已签名的应用程序安装到我的手机上,但当我尝试购买剑或药水时,我收到了一个项目不可用的错误

  

您要求的商品无法购买。

我甚至尝试使用其他设备来确保不是因为开发人员无法购买自己的产品,而且我在两台设备上都收到相同的消息。

我错过了什么?

9 个答案:

答案 0 :(得分:24)

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

答案 1 :(得分:21)

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

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

答案 2 :(得分:9)

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

答案 3 :(得分:6)

我对此错误的体验是:

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

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

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

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

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

答案 4 :(得分:2)

仅仅上传未发布的草稿apk以测试应用内结算已经不够了。您需要做的是将apk上传到开发者控制台上的alpha或beta apk部分。然后,您需要发布它。如果您还在Production APK部分中有apk草稿,请务必在发布之前将其删除。否则它将对所有人开放。

发布alpha或beta apk使该apk仅适用于您指定/允许的那些测试人员。

以下是Google的相关文档:

https://support.google.com/googleplay/android-developer/answer/6062777?rd=1

答案 5 :(得分:1)

我找到了解决问题的方法。我无法让谷歌的应用程序购买示例工作,但我能够使用我在原始帖子中提到的步骤使InApp Billing Tutorial工作。

如果没有其他任何内容可能会让某人看到测试其中一个应用内结算示例时需要执行的所有步骤。

答案 6 :(得分:1)

发布应用程序对我有用(并将其发布(!))。我不得不等待Google更新他们的数据库,如其他地方所述,Google Play上的更改不会立即发生。

答案 7 :(得分:1)

这个问题也持续了几天,并且搜索了很多。我发现这个人说删除应用程序然后重新上载修复了他的问题,这对我来说实际上也有效。

试试,完全从开发者控制台删除您的应用。并重新加载一个新签名的apk并重新设置

答案 8 :(得分:1)

轶事补充:如果您已经在门户网站中有现有应用,并且您想测试已签名的版本,但未将其上传到门户网站以进行分发。执行构建签名版本的常规步骤但使用上载到门户中的最新版本代码。您将可以对购买进行快速而肮脏的测试(您无法在Google Play门户网站上上传此版本,但这是结束本地化测试的一种方法(或者甚至可以作为允许侧面加载分发的方式)使用Google Play进行合法计费的版本/口味。)

3:)