您请求的商品无法购买

问题描述 投票:82回答:16

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

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

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

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

};

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

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

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

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

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

产品ID肯定是相同的,它肯定是发布的,并且请求必须通过ok,因为它是示例应用程序。

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

任何想法将不胜感激!

android in-app-purchase in-app-billing
16个回答
167
投票

我对此错误的体验是:

  1. 确保将签名的APK上传到开发者控制台。
  2. 确保在您的设备上安装已签名的APK,而不是在调试器中启动应用程序。
  3. 确保在开发人员控制台中创建测试帐户。
  4. 设置您测试帐户 务必使用您的测试帐户登录您的设备。 在封闭式alpha / beta测试的情况下,请确保已将测试帐户添加到选定的测试人员组,您可以在管理您的alpha / beta版本的页面上执行此操作。 在封闭式alpha / beta测试的情况下,请确保您的测试帐户已通过特殊邀请链接接受参与此应用程序的测试
  5. 确保在开发者控制台中创建应用程序结算,最后从控制台激活项目! (这是完全遵循谷歌教程后得到的那个)
  6. 确保将清单中的VersionCode和VersionName设置为与开发人员控制台中的版本相同(Alpha,Beta或Production。草稿不再起作用)。 @alexgophermix的回答对我有用。

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


3
投票

你必须接受成为测试者

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

enter image description here


2
投票

如果产品状态为“未激活”,请将其激活。这解决了我。当然谷歌需要一段时间才能更新

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


1
投票

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

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

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

祝好运


1
投票

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


0
投票

可能有三种可能性:

  1. 将您的APK保存在谷歌播放作为草稿,不要忘记激活它并发布您的产品与独特的ID。
  2. 检查您的ID与Google Play上的产品ID相同。
  3. 或检查项目类型是否相同,例如管理Google Play和您的代码。

如果您正在测试不需要发布应用程序。只需将其保存为草稿即可。然后等待一段时间可能需要2到3小时来激活它。


0
投票

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

  1. 在Google Play开发者控制台上创建产品。
  2. 保存并将其设置为“活动”。
  3. 将APK上传到Google Play。

注:在第1步中创建产品6小时后,应用内结算可能无法运行。


0
投票

最受欢迎的答案几乎涵盖了所有内容,但是如果您像我一样匆匆通过App Release流程以继续测试IAP,请确保在您正在测试的国家/地区的Play商店中发布应用程序在!在设备上检查此功能的简便方法是在打开测试选择加入网址时点击“在Google Play上下载”链接。如果您在尝试通过Google Play商店打开时收到“找不到商品”错误,则可能是您的应用尚未在那里发布。我遇到了这个问题,因为我正在通过ADB正确地加载已签名的应用程序,虽然IAP会出现在构建中,但是当您尝试购买时会出现此错误。


91
投票

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

  1. 您已创建了apk,并已将其发布到Alpha或Beta版的Google Play信息中心。
  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库的“通用”构建(基本上是另一个构建而不是存储上的构建),它将无法工作。

44
投票

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


21
投票

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

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


19
投票

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

希望这有助于某人


16
投票

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

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


8
投票

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


4
投票

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


4
投票

最新增补(2016/11):

  1. 测试人员必须接受从开发者控制台获取的链接中获取的测试请求(部分:APK)
  2. app必须发布:可以在beta / alpha测试中发布;信息:如果您在开发者控制台中点击“发布”,它将不会在生产中发布该应用,除非您将其传播到生产标签(在APK部分);
© www.soinside.com 2019 - 2024. All rights reserved.