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

问题描述 投票:12回答:9

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

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

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

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

您请求的商品无法购买。

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

我错过了什么?

android in-app-purchase in-app-billing
9个回答
25
投票

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


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使用的帐户。

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


10
投票

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


6
投票

我对此错误的体验是:

  1. 确保将签名的APK上传到开发者控制台。
  2. 确保在您的设备上安装已签名的APK,而不是在调试器中启动应用程序。
  3. 确保在开发人员控制台中创建测试帐户。
  4. 务必使用您的测试帐户登录您的设备。
  5. 确保在开发者控制台中创建应用程序结算,最后从控制台激活项目! (这是完全遵循谷歌教程后得到的那个)

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


1
投票

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

如果没有别的,这可能有助于某人查看测试其中一个应用内结算示例所需的所有步骤。


1
投票

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

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


1
投票

发布应用程序为我做了伎俩(并将其发布(!))。我不得不等待Google更新他们的数据库,如其他地方所述,Google Play上的更改不会立竿见影。


1
投票

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

3:)

© www.soinside.com 2019 - 2024. All rights reserved.