无法使用测试账号进行Android应用内购买,“出版商无法购买此项目”

6

我想测试 Android 的应用内购买功能。

我已经将一个私有签名的 APK 文件上传到 Google Player 开发者控制台。目前,它位于“Alpha Testing”部分的“草稿”中。

当我尝试购买商品时,我收到以下错误:

The publisher cannot purchase this item.

这让我很困惑,因为我正在使用一个测试账户,而不是用于发布此应用程序的账户。
我怀疑可能会失败,因为手机上有开发者帐户,但这是我的个人手机,所以我不想将帐户从手机上删除(特别是如果我不确定它是否能解决问题)。
请问是否需要完全从手机中删除发布者帐户才能测试应用内购买?
谢谢!
4个回答

12

首先,你应该记住的一件事是:

测试账户:

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设备上。如果设备有多个账户,则购买将使用下载app的账户。如果没有账户下载了该应用程序,则使用第一个账户进行购买。用户可以通过展开购买对话框来确认正在进行购买的账户。

查看此链接:

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

希望这能解决你的问题。如果需要更多信息,请告诉我。


谢谢Maulik。我无法验证是谁在购买,因为购买对话框从未出现(它立即转到失败屏幕),但我认为这可能是问题所在。听起来唯一改变主帐户的方法是进行工厂重置:(“注意:更改设备上的主帐户的唯一方法是进行工厂重置,确保您首先使用主帐户登录。” http://developer.android.com/google/play/billing/billing_testing.html - Goose
嗯!你找到重新安装应用商店的其他方法了吗(非通过开发者账户而是通过其他账户)?不用恢复出厂设置,我没有尝试过但你可以试一下,只需使用测试账户重新安装即可。在谷歌上你可以找到com.vending(应用商店)最新版的apk,例如4.3或其他版本。 - Maulik
@Goose,现在情况怎么样了?你的手机上已经完全测试了应用内购买了吗?如果需要的话,请告诉我,我可以提供更多帮助。 - Maulik
我自己的手机无法测试应用内购买,但我在朋友的手机上成功测试了。他的手机一切正常。我认为这证实了你原来回答的一切。我还没有尝试重新安装Play商店。 - Goose
测试应用内购买是一件非常麻烦的事情!! - Someone Somewhere
不,它并没有。我们只需要理解Android计费系统的流程。就这样!!可能有一些安全原因。我不知道。 - Maulik

0

顺便说一下,我能够使用Android Studio和ADB桥在一个设备上测试带有应用内购买的调试版本,并使用第二个xxxxxxxxx.gmail.com解决发布者被阻止购买自己商品的问题。

1)做所有你需要做的事情,从Play商店安装应用程序(我在Android Studio中使用了TrivialDrive示例),并获得错误消息“发布者无法购买此项目”。

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

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

4)在开发人员控制台中,请确保在两个位置将新的gmail地址添加为测试人员;特定应用程序的APK部分和您的帐户设置下的许可证测试。

5)在开发人员控制台中,在应用程序的APK部分复制测试人员选择加入URL,并将其发送到您的新gmail地址,以便您可以从Android设备上的电子邮件中打开它。

6) 前往 Android 上的 Play Store 应用程序。点击左上角的三条杠。滑出菜单中靠近顶部的帐户将被计费以购买物品。将其更改为您添加的新 Gmail 帐户。

7) 在 Android 上登录以阅读新的 Gmail,并找到等待您的自我发送的选择加入 URL。单击它并跟随它完成应用程序的安装。当它到达那里时,请选择 Play Store 而不是浏览器进行安装。

8) 现在尝试应用内购买。没有更多的发布者无法购买错误。在 alpha 测试中,它说您实际上不会被计费。您可能需要等待一段时间,以便在开发人员控制台中进行的更改传播到系统中。因此,如果首次尝试应用内购买失败,请等待半个小时后再试。

之后,您可以在 Android Studio 中重新构建已签名的发布版本,并通过 adb 桥安装它。应用内购买仍然有效。您还可以构建调试版本,这也适用于 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"
    }
}

0

此方法仅适用于您已经发布至Google Play的应用程序至少有一个版本

我使用以下步骤测试应用内购买:

我使用另一部带有单独Google账户的手机。对于支付,我使用Google Play礼品卡。我创建了一个签名的发布APK文件,就像为应用商店一样,并使用adb install将其加载到设备上。这样,我可以从设备进行真实购买,并在控制台中观察调试输出。这种方法的优点是,我可以在几秒钟内构建和替换APK,而无需将其上传到应用商店并等待发布。我强烈建议通过控制台输出记录一张真实的购买收据,并将其存储在文本文件中以供以后使用。有了这个,您可以轻松地实现服务器端收据验证,反复发送您存储的收据,直到一切正常。为测试进行真实货币购买不会太痛苦,您花费的70%的钱会返还给您。


-1

在运行原生KitKat的手机上,Google Play v4.9.13版本开始支持在Play商店内切换Google账户。在应用程序菜单中,右上角有一个下拉菜单,您可以选择要在Google Play中使用的活动帐户。请注意,这些帐户必须首先添加到设备中(在设备设置>帐户中)。

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


1
我找到了这个选项,但是在切换到另一个谷歌账户(我在开发者控制台中列出的测试账户)后,我仍然收到“发布者无法购买”的错误。我无法弄清楚如何让应用程序从我的测试账户而不是我的开发者账户发送购买请求。 - arlomedia
1
我发现如果你启动一个“Alpha/Beta”版本,你可以使用另一个账户下载你的应用并测试IAP。 - Goose
根据Maulik的答案中关于设备上第一个帐户的信息,我找到了两种方法使其工作:1)设置一个新设备并在该设备上首先设置我的测试帐户,然后侧向加载应用程序;或者2)将应用程序上传到开发者控制台作为beta版本,等待几个小时,然后从其Play Store URL下载应用程序到设备上(您无法通过搜索商店找到alpha应用程序)。 - arlomedia
下一个问题是您需要为测试帐户输入真实的付款信息。付款屏幕显示Google将使用该信息创建新的Google钱包帐户。我不想让我的信用卡信息留在我没有其他用途的额外帐户中,但我能够输入PayPal帐户的登录信息,并且在3-4次连接失败后,付款屏幕接受了该信息,我能够继续进行测试。 - arlomedia
Alpha应用程序应该通过特殊的URL(https://play.google.com/apps/testing/com.package.name)对你为测试账户设置的Google组成员开放。请参阅https://support.google.com/googleplay/android-developer/answer/3131213?hl=en。 - MandisaW

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接