您请求的商品无法购买

时间:2012-10-29 06:50:34

标签: 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),

};

我使用Eclipse导出了应用程序,并将其安装在我的手机上,并将其上传到Android Market网站。此外,在Android电子市场网站上,我已添加完整版作为应用内购买并发布。

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

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

您请求不可购买的商品的文档说明如下:

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

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

我正在使用相同版本的apk,我也发布了inapp产品并激活了apk。 但我仍面临同样的问题,请帮我解决。

任何想法都将不胜感激!

17 个答案:

答案 0 :(得分:160)

我对此错误的体验是:

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

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

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

  4. 设置测试帐户

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

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

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

答案 1 :(得分:86)

以下是要检查的内容:

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

    1. 确保您使用测试帐户登录谷歌(在您的浏览器中)并打开此链接(标有红色),然后批准成为测试人员 !!!! http://i.stack.imgur.com/VSgAV.png
    2. <强>更新

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

答案 2 :(得分:44)

如果产品在Play商店中Inactive Activate,则会发生这种情况,产品应该可以正常使用。

答案 3 :(得分:20)

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

因此,即使您想测试帐户 购买任何产品,该帐户也应该包含有效的信用额度。

答案 4 :(得分:18)

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

希望这有助于某人

答案 5 :(得分:15)

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

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

答案 6 :(得分:4)

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

答案 7 :(得分:4)

最新增补(2016/11):

  1. 测试人员必须接受测试请求取自的链接 开发者控制台(部分:APK)

  2. app必须已发布:可以在beta / alpha测试中发布;信息:如果你点击&#34;发布&#34;在Developer Console中它不会发布 生产中的应用程序,除非您将其传播到生产选项卡(在 部分APK);

答案 8 :(得分:3)

你必须接受成为测试人员

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

enter image description here

答案 9 :(得分:2)

如果产品状态位于&#34;非活动状态&#34;,请将其激活。 这解决了我。 当然谷歌需要一段时间来更新

还要确保您的测试邮件已注册。

答案 10 :(得分:1)

“Open Alpha Testing”或“Open Beta Testing”在尝试了互联网上建议的所有方法后,为我解决了这个问题。

转到Android开发者控制台 - &gt;你的应用 - &gt; APK然后选择使用Open Alpha / Beta测试。发送提供给您自己或测试人员的链接。

只要他们在Android设备上使用该帐户登录,他们就可以对其进行测试。

祝你好运

答案 11 :(得分:1)

我遇到了同样的问题,我的解决方案是将当前版本的应用上传到Play商店,如果是用于测试然后将其上传到Alpha或Beta频道,我已经完成了这个和错误消失,定价细节正确显示..

答案 12 :(得分:0)

就我而言,我必须将我的电子邮件地址添加到以下字段中。 enter image description here

答案 13 :(得分:0)

可能有三种可能性:

  1. 将您的APK保存在google play上作为草稿,不要忘记激活它并使用独特的ID发布您的产品。
  2. 检查您的ID与Google Play上的产品ID相同。
  3. 或检查项目类型是否相同,例如管理Google Play和您的代码。
  4. 如果您正在测试,则无需发布该应用。只需将其保存为草稿即可。然后等待一段时间可能需要2到3小时来激活它。

答案 14 :(得分:0)

在购买应用程序内订阅时,我将以下列出的所有内容放在正确的位置。

  1. 创建签名的APK,并发布到 alpha频道

  2. 许可测试

  3. 中添加了测试人员的电子邮件ID
  4. 将测试者的电子邮件ID添加到了封闭轨道alpha测试

  5. 选择作为测试员

  6. 测试ID与开发者帐户的ID 不同

  7. 在android设备上,不在模拟器上

  8. 从Play商店下载了应用程序

仍然出现此错误,提示“找不到您要查找的商品”

浪费2-3天后,我发现只有在Play商店中设置了某些付款方式后,该功能才有效。

虽然大多数答案与旧的IAB购买有关,但是我实现了新的结算客户端API,该API是- implementation 'com.android.billingclient:billing:1.0' ,要找到解决方案并不容易。

如果某些情况相同,则添加付款方式可能有助于您克服此错误。您甚至需要添加一个进行测试,但是,对于作为许可证测试人员添加的电子邮件ID,将收费。

答案 15 :(得分:0)

票数最高的答案涵盖了几乎所有内容,但是如果您像我一样笨拙地着手完成App Release过程以继续进行测试, IAP,请务必在您要测试的国家/地区的Play商店中发布该应用!在设备上进行检查的简单方法是,在打开测试加入网址时,点击“在Google Play上下载”链接。如果您尝试通过Google Play商店打开时遇到“找不到商品”错误,则可能您的应用尚未发布。之所以遇到这个问题,是因为我正在通过ADB正确加载已签名的应用程序,尽管IAP将显示在内部版本中,但在尝试购买它们时会遇到此错误。

答案 16 :(得分:0)

要解决此问题,请按以下步骤操作:

  1. 在Google Play开发者控制台上创建产品。

  2. 保存并将其设置为&#34;有效&#34;。

  3. 将APK上传到Google Play。

  4. N.B。在步骤1中创建产品6小时后,应用内结算可能无法使用。