您请求的商品无法购买

lax*_*man 87 android in-app-purchase in-app-billing

我正在尝试将Android Market应用内购买整合到我的应用中,但不幸的是,每当我尝试购买真正的inapp产品时,都会遇到恼人的错误.

我已经采用了示例应用程序(Dungeons)并将其添加到我的应用程序中.我已更新公钥,并将产品列表更新为以下内容:

/**可购买产品的一系列产品列表条目.*/

private static final CatalogEntry[] CATALOG = new CatalogEntry[] {
    new CatalogEntry("full", "Full v", Managed.MANAGED),

};
Run Code Online (Sandbox Code Playgroud)

我已经使用Eclipse导出了应用程序,并将其安装在我的手机上,并将其上传到Android Market网站.同样在Android Market网站上,我已经添加了完整的应用内购买并发布了它.

我还将我的googlemail帐户添加为测试帐户(这是我在手机上登录的帐户).

当我在我的手机上运行该应用程序时,每当我尝试购买时,我都会收到您要求购买的消息,但是如果我尝试例如android.test.purchased,那么它的工作原理非常好.

您请求的不可购买的项目的文档说明如下:

表示Android Market无法在应用程序的产品列表中找到所请求的项目.如果产品ID在REQUEST_PURCHASE请求中拼写错误,或者在应用程序的产品列表中未取消项目,则会发生这种情况.

产品ID定义相同,它已定义发布,请求必须通过ok,因为它是示例应用程序.

我使用相同版本的apk和我发布inapp产品也和激活apk也.但我仍然面临同样的问题,请帮助我解决它.

任何想法将不胜感激!

pin*_*nux 173

我对此错误的体验是:

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

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

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

  4. 设置您测试帐户

    1. 务必使用您的测试帐户登录您的设备.
    2. 在封闭式alpha/beta测试的情况下,请确保已将测试帐户添加到选定的测试人员组,您可以在管理您的alpha/beta版本的页面上执行此操作.
    3. 在封闭式alpha/beta测试的情况下,请确保您的测试帐户已通过特殊邀请链接接受参与此应用程序的测试
  5. 确保在开发者控制台中创建应用程序结算,最后从控制台激活项目!(这是完全遵循谷歌教程后得到的那个)

  6. 确保将清单中的VersionCode和VersionName设置为与开发人员控制台中的版本相同(Alpha,Beta或Production.草稿不再起作用).@alexgophermix的回答对我有用.

如果您正在寻找没有实际提款的测试付款,您还需要将您的测试帐户添加到另一个特殊的帐户列表"具有测试访问权限的Gmail帐户",您可以在播放帐户设置(而非项目!)中找到该帐户.在您可以看到项目列表的页面上转到设置,然后在"帐户详细信息"页面上(向下滚动,它几乎位于页面底部),您将找到"具有测试访问权限的Gmail帐户"列表.

  • 确保将清单中的VersionCode和VersionName设置为与开发人员控制台中的版本相同(Alpha,Beta或Production.草稿不再起作用).@alexgophermix的回答对我有用.+1 (33认同)
  • 此外,请确保测试用户已选择加入Alpha(如果您使用该obv).将它们添加到许可证测试是不够的. (6认同)
  • 永远记得使用签名版本测试应用程序.+1 (5认同)
  • 通过打开选择加入的URL并使用测试帐户,确保您已批准成为测试人员. (4认同)
  • 版本代码号让我... thx的帮助! (3认同)

And*_*dan 93

以下是一些要检查的事项:

  1. 您已创建了apk,并已将其发布Alpha或Beta版的GooglePlay信息中心.
  2. GooglePlay信息中心中的应用程序未处于" 草稿"模式,但在"已发布"中(您需要在屏幕左侧显示所有带有检查图标的小圆圈,然后才能发布).
  3. 您已设置另一个测试帐户,而不是"附加"到GooglePlay信息中心的帐户.您可以通过创建Google+群组,将测试帐户添加到该群组并在GooglePlay信息中心中指定Google+群组来实现.
  4. 您用来测试购买的apk具有相同的版本代码,版本名称,最重要的是它使用与您在商店中发布的apk 相同的密钥库进行签名.
  5. 您在仪表板中更改某些内容之间需要等待几个小时才能传播更改.这需要几个小时.
  6. 确保sku值是有效的sku值(将其与您在GP Dashboard中输入的进行比较).
  7. 尝试购买已购买的商品.获取购买的商品并将其显示在日志中以查看是否存在.如果是这样,那么就消费该产品或将钱退还到您的测试帐户(您需要等待退款才能传播.这需要几个小时.)
  8. 确保Inapps处于活动状态!

6小时后,对我来说最后一部分是什么:

  1. 确保您使用测试帐户登录谷歌(在您的浏览器中)并打开此链接(标有红色)并且您同意成为测试人员! http://i.stack.imgur.com/VSgAV.png

UPDATE

  1. 如果您正在使用flavor来构建针对不同CPU的apks,并且arm,armv7和x86构建并将它们全部上传到商店,请记住使用其中一个来测试inapps.如果你使用一个包含所有cpu库的"通用"构建(基本上是另一个构建而不是存储上的构建),它将无法工作.

  • 我和你有同样的情况.所有1-8都没有问题,但问题是9.浪费我一整天才找到这个.你是我的生命保护者. (12认同)
  • 问题是第9步,谢谢! (4认同)
  • 是的,最后一部分是最重要的,似乎谷歌改变了规则,它使用没有第9步,但现在,无论是近距离测试版还是公测版,都需要点击链接.谢啦! (2认同)

Ani*_*tel 44

当产品Inactive在Play商店,Activate产品上并且应该可以正常工作时会发生这种情况.


Nir*_*ali 21

当您完成的所有操作都很完美,您使用带有正确产品ID的已签名APK时,会出现此错误,但您必须注意,您使用的帐户可能没有正确的有效信用卡详细信息.

因此,无论何时您想要使用测试帐户购买任何产品,该帐户都应具有有效的信用详情.


Dav*_*Val 20

还有另一个可能的原因导致这个错误,这几乎让我疯了一整天,直到我发现了什么问题:apk版本.如果您正在使用版本号高于上传到Play商店的本地apk(正确签名,正确的密钥,正确的产品ID),您也会收到此错误.

希望这有助于某人

  • 这个答案的信息实际上很有用,对于像我这样的人来说可能是正确的答案 (9认同)
  • @tttony我指出了错误的另一个原因,我没有要求任何澄清.这不是假设或问题,如果您手动安装版本号比发布版本更高的APK,应用内购买*将*返回此错误. (5认同)
  • 这是一个非常有用的信息。非常感谢您节省了我这么多时间。竖起大拇指。 (2认同)

ale*_*mix 18

也许我一直在做错了,但如果您正在测试的版本不是Play商店中的Alpha,Beta或Production,那么您也会收到此错误.

我经常更新我的VersionCode和VersionName,同时仍在测试新版本(在上传到Play商店之前),然后在我测试IAB特定功能时最终出现此错误.

  • 并且在上传到Play商店后至少需要45-90分钟才能开始工作. (4认同)

vuh*_*990 10

你必须接受才能成为测试员

发布管理 -> 应用发布 -> 管理测试员然后以隐身模式打开此链接(选择加入 URL)以登录测试员帐户

在此处输入图片说明


Pay*_*Chu 8

对于我的情况,需要从APK标签获取链接Opt-in URL.打开浏览器并使用该链接.然后在该页面中注册为测试人员.


lax*_*man 5

请检查您是否使用相同的测试帐户邮件 ID

  • 这并没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方发表评论 - 您可以随时对自己的帖子发表评论,一旦您有足够的 [声誉](http://stackoverflow.com/faq#reputation),您就可以[评论任何帖子](http://stackoverflow.com/privileges/comment)。 (3认同)