无法使用测试帐户进行Android应用内购买“发布商无法购买此商品”

我正在尝试在Android中测试应用内购买

我已将私人签名的apk上传到Google Player开发者控制台。 它目前是“Alpha测试”部分的草案

当我尝试购买商品时,出现以下错误:

The publisher cannot purchase this item. 

在此处输入图像描述

这让我很困惑,因为我使用的是测试帐户 ,而不是用于发布此应用的帐户。

在此处输入图像描述

在此处输入图像描述

我怀疑它可能会失败,因为我手机上有开发者帐户,但这是我的个人电话,所以我不想通过电话删除帐户(特别是如果我不确定它会解决问题)。

任何人都可以确认是否必须从手机中完全删除发布商帐户以测试应用内购买?

谢谢!

首先,你应该在脑海中记下这一点

测试帐号:

Google Play不允许您使用您的开发者帐户直接购买您自己创建的应用内商品,您需要在开发者帐户个人资料下创建测试帐户。

了解更多信息:

1) http://developer.android.com/training/in-app-billing/test-iab-app.html#PlayItemTest

2) http://developer.android.com/google/play/billing/billing_testing.html#billing-testing-test

多个帐户:

注意:要进行测试购买,许可测试帐户必须位于用户的Android设备上。 如果设备有多个帐户,则会使用下载该应用的帐户进行购买。 如果没有任何帐户下载了应用程序,则使用第一个帐户进行购买。用户可以通过展开购买对话框来确认正在进行购买的帐户。

检查此链接:

http://developer.android.com/google/play/billing/billing_testing.html#testing-purchases

希望它能解决你的问题。 如果您想获得更多信息,请告诉我。

此方法仅适用于您的应用程序至少发布一个版本才能进行Google Play游戏

我执行以下操作来测试应用内购买:

我使用第二部手机和一个单独的谷歌帐户。 对于付款,我使用Google Play优惠券。 我创建了一个签名版本的apk,就像app store一样,并使用adb install将其加载到设备上。 这样我就可以从设备上进行实际购买,并在控制台中观看调试输出。 这种方法的优点是我可以在几秒钟内构建和替换apk,而无需将其上传到app store并等到它发布。 我强烈建议通过控制台输出记录一个真钱购买收据,并将其存储在文本文件中供以后使用。 有了这个,您可以轻松实现服务器端收据validation,一遍又一遍地发送存储的收据,直到一切正常。 为了测试而购买真钱购买并不会造成太大的损失,您花费的70%的钱都归还给您。

FWIW我能够使用Android Studio和ADB桥接器在一台设备上使用应用程序内购买测试调试版本,并使用第二个xxxxxxxxx.gmail.com来解决阻止其购买自己的商品的发布商的问题。

1)在Play商店中安装应用程序所需的一切(我在Android Studio中使用TrivialDrive示例),并收到错误消息“发布者无法购买此项目”。

2)在我的桌面上,我退出了我的发布者gmail地址,然后创建了一个新的gmail帐户进行测试。

3)在Android设备上(我的是棒棒糖)转到设置:帐户:谷歌并添加您刚刚创建的gmail帐户作为第二个帐户。 它会提示您添加付款方式。 你必须这样做。 信用卡,贝宝,东西。 您需要一个可以购买东西的Play商店的有效第二个帐户。

4)在开发者控制台中,确保在两个地方添加新的gmail地址作为测试人员; 特定应用的APK部分以及许可测试下的帐户设置。

5)在App的APK部分的开发者控制台中,复制测试者选择加入的URL并将其邮寄到您的新Gmail地址,以便您可以从Android设备上的电子邮件内部打开它。

6)转到Android上的商店应用程序。 单击左上方的三重栏。 顶部附近的滑出菜单有一个帐单,将收取费用购买东西。 将其更改为您添加的新gmail帐户。

7)在Android上登录以阅读新的Gmail并find等待您邮寄给自己的选择加入的URL。 单击它并按照它来安装应用程序。 选择Play商店,而不是浏览器,从它到达那里时进行安装。

8)现在尝试应用内购买。 没有其他发布商无法购买错误。 在阿尔法测试中,它说你实际上不会被收费。 您可能需要等待一段时间才能在开发人员控制台中完成更改以在系统中传播。 因此,如果首次尝试应用内购买无效,请等待半小时再试一次。

之后,您可以在Android Studio中重建已签名的发布版本,并通过adb bridge进行安装。 应用内购买继续有效。 您还可以构建调试版本,这也适用于IAP测试。 您必须在build.gradle中添加密钥库信息才能使调试版本正常工作。

  android { signingConfigs { release { storeFile file("MyAndroidKey.keystore") storePassword "mypassword" keyAlias "MyAndroidKey" keyPassword "mypassword" } debug { storeFile file("MyAndroidKey.keystore") storePassword "mypassword" keyAlias "MyAndroidKey" keyPassword "mypassword" } } 

从运行库存KitKat的手机上的Google Play v4.9.13开始,您可以在Play商店内的Google帐户之间进行切换。 在应用程序菜单中,右上角有一个下拉列表,您可以在其中选择要用于Google Play的有效帐户。 请注意,必须先将帐户添加到设备中(在“设备设置”>“帐户”中)。

我仍然需要测试我的应用程序的IAP实现,但对于那些没有维护单独的“开发人员设备”的人来说,这似乎比工厂重置更好。