我正在尝试在Android中测试应用内购买。
我已将私人签名的apk上传到Google Player开发者控制台。它目前是" Alpha测试中的草案"部分。
当我尝试购买商品时,我收到以下错误:
The publisher cannot purchase this item.
这让我感到困惑,因为我使用的是测试帐户,而不是用于发布此应用的帐户。
我怀疑它可能会失败,因为我手机上有开发者帐户,但这是我的个人电话,所以我不想通过电话删除该帐户(特别是如果我不确定的话)它将解决问题)。
是否有人可以确认是否必须从手机中完全删除发布商帐户以测试应用内购买?
谢谢!
答案 0 :(得分:11)
首先,你应该在脑海中记下
测试帐户:
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
希望它能解决您的问题。如果您想获得更多信息,请告诉我。
答案 1 :(得分:0)
此方法仅在您发布了至少一个适用于Google Play的应用版本时才有效!
我执行以下操作来测试应用内购买:
我使用另一部带有单独Google帐户的手机。对于付款,我使用谷歌游戏优惠券。我创建了一个签名版本的apk,就像应用商店一样,并使用 adb install 将其加载到设备上。这样我就可以从设备上进行实际购买,并在控制台中观察调试输出。这种方法的优点是我可以在几秒钟内构建和替换apk,而无需将其上传到应用商店并等到它发布。我强烈建议通过控制台输出记录一个真钱购买收据,并将其存储在文本文件中供以后使用。有了这个,您可以轻松实现服务器端收据验证,一遍又一遍地发送存储的收据,直到一切正常。为了测试而购买真钱购买并不会造成太大的损失,您花费的70%的钱会回馈给您。
答案 2 :(得分:0)
FWIW我可以使用Android Studio和ADB桥接器在一台设备上使用应用内购买测试调试版本,并使用第二台xxxxxxxxx.gmail.com来解决阻止其购买自己商品的发布商的问题。
1)从Play商店安装应用程序所需的一切(我在Android Studio中使用TrivialDrive示例)并收到错误消息&#34;发布商无法购买此商品&#34;。< / p>
2)在我的桌面上,我退出了我的发布商gmail地址,然后创建了一个新的Gmail帐户进行测试。
3)在Android设备上(我的是Lollipop)转到设置:accounts:google并添加刚刚创建的gmail帐户作为第二个帐户。它会提示您添加付款方式。你必须这样做。信用卡,贝宝,东西。您需要一个可以购买东西的Play商店的有效第二个帐户。
4)在开发者控制台中,确保在两个地方添加新的gmail地址作为测试人员;特定应用的APK部分以及许可测试下的帐户设置。
5)在App的APK部分的开发者控制台中,复制测试人员选择加入的URL并将其邮寄到您的新Gmail地址,以便您可以从Android设备上的电子邮件中打开它。
6)转到Android上的Play商店应用。单击左上方的三重栏。顶部附近的滑出菜单有一个帐单,将收取费用购买东西。将其更改为您添加的新gmail帐户。
7)在Android上登录以阅读新的Gmail并找到等待您邮寄给自己的选择加入的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"
}
}
答案 3 :(得分:-1)
从运行库存KitKat的手机上的Google Play v4.9.13开始,您可以在Play商店内的Google帐户之间切换。在应用程序菜单中,右上角有一个下拉列表,您可以在其中选择要用于Google Play的有效帐户。请注意,帐户必须先添加到设备中(在“设备设置”>“帐户”中)。
我仍然需要测试我的应用程序的IAP实现,但对于那些不维护单独的开发人员设备的人来说,这似乎是一个比工厂重置更好的选择。