用户没有资格进行此次购买 - 在应用内结算

时间:2012-12-06 16:10:33

标签: android in-app-billing

我正在

"User is not eligible for this purchase"
尝试购买测试时来自谷歌播放的消息。

我已经在google play上传了singed apk,发布了结算项目(在应用商品中),将apk保存为草稿,仍然收到此错误。

此外,我还试图从测试用户设备购买。

9 个答案:

答案 0 :(得分:19)

修改

此错误的实际原因:

  

如果未经授权的用户尝试购买商品,则会显示此消息   应该出现。

因此,如果应用程序未发布,非测试用户在尝试购买时应该会收到此错误。

我意识到,Google Play需要时间来更新应用商店中的更改。所以你不能指望立即改变。相反,你应该等待,在我的情况下平均需要2/3小时。

仍然可能存在一些未知的错误,我无法想象。

我的案例:

首先我试图从我的测试设备购买仍然有这个错误,但等待一段时间后我没有得到这个错误。所以我认为现在是时候了。

其次我尝试使用非测试设备,因为应用程序未发布,这是一个未经授权的设备。

答案 1 :(得分:2)

您必须仅使用Test Account进行测试。在测试时,您无法使用市场帐户或其他人购买您的应用程序。

来自Android文档

CHECK_BILLING_SUPPORTED请求的同步响应为Bundle提供服务器响应代码。 RESULT_OK响应代码表示支持应用内结算; RESULT_BILLING_UNAVAILABLE响应代码表示应用内结算不可用,因为您指定的API版本无法识别或用户无法进行应用内购买(例如,用户所在的国家/地区)不允许应用内结算)。还可以返回SERVER_ERROR,表明Google Play服务器存在问题。

查看详情here

答案 2 :(得分:2)

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

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

您必须在发布商帐户的修改个人资料中指定测试帐户

许可&应用内结算

测试帐户框

答案 3 :(得分:2)

现在还有一种情况可能导致“用户不符合条件”消息。

归结为最近许可证制度的变化:

  

现在,每个应用程序都会单独管理许可密钥。查看   应用程序的许可证密钥,切换到新设计并继续   到应用程序的服务和API

创建新应用时,您无法再使用旧的“共享”许可密钥。您必须将Google Play开发者控制台切换为“新设计”,并使用该应用的服务和API部分中每个特定应用的许可证密钥。

如果您尝试使用旧的共享密钥,则行为如下:

  1. 如果应用程序尚未发布,测试人员将收到“用户不是 有资格购买此消息“消息。
  2. 如果发布了应用,用户将完成购买流程 是收取购买费用,但该应用程序将不会收到“购买成功”消息。
  3. TL; DR :确保您使用的是新的每应用程序许可证密钥,并且您已正确复制它。

答案 4 :(得分:2)

我有同样的问题。 我通过开发者控制台的“旧设计”上传apk来修复它。 步骤进行:

  1. 重命名应用程序包。
  2. 创建发布版本并使用您的开发人员密钥对其进行签名。
  3. 将其上传到开发者控制台旧设计。您将被要求切换到获取公钥的新设计。不要这样做。
  4. 执行旧设计的所有后续操作。
  5. 创建并发布inApp内容后,切换到新设计并获取应用程序安全密钥。
  6. 将新密钥放入您的应用程序,重新进行并重新签名。
  7. 将您的应用程序安装到设备上。
  8. 等2-3个小时。 利润。
  9. 喜欢它。 Developer Console的“新设计”存在一些问题。我删除了apk并从“旧设计”创建了一个新的应用程序,它的工作原理。价格点(应用内商品)会自动添加,因为应用包名称与我删除的旧名称完全相同。

    还要确保使用现在特定于应用程序的新公钥。

答案 5 :(得分:1)

确保您将@ gmail.com地址填写为许可测试帐户。与您的Google帐户关联的其他电子邮件地址无效。

答案 6 :(得分:1)

对于“Unpublisched”应用,请在Play Developer Console中的“帐户详细信息”和“具有测试访问权限的Gmail帐户”下输入您的电子邮件帐户。还需要等待24小时。

答案 7 :(得分:0)

清单中的android:versionCode设置必须与Google Play控制台中的活动设置相同

答案 8 :(得分:0)

我遇到了这个问题并且被打了一两天。我删除了测试设备的gmail并重新添加了它。之后就可以了。