【问题标题】:New Unity In-App Purchase integration (Android)新的 Unity 应用内购买集成 (Android)
【发布时间】:2016-04-06 08:26:40
【问题描述】:

我正在尝试集成新的 Unity inapp 服务并遇到下一个问题:

我在 google play 上创建了项目(现在它只在 Alpha 测试中,没有发布),我创建了应用内购买内容。在统一编辑器中一切正常,但是当我尝试在设备上运行它时,下一个:

*不可用产品coins500 -**.coins500 OnInitializeFailed InitializationFailureReason:NoProductsAvailable*

通过 builder.setPublicKey() 和统一分析仪表板插入代码中的 Google Play API 密钥应用程序具有 BILLING 权限

为什么我不能从 GP 那里得到产品?

编辑:刚刚找到这个主题:http://docs.unity3d.com/Manual/UnityIAPGooglePlay.html 现在我正在尝试发布我的应用程序并再次测试 IAP。这可能是个问题。

Edit2:发布我的应用程序对我的问题没有帮助。有什么解决办法吗?仍然看到我的产品无法使用。 OnInitializeFailed InitializationFailureReason:NoProductsAvailable

【问题讨论】:

  • ps 去这里forum.unity3d.com/threads/… 获取一些可爱的代码,开始使用 Unity 令人惊叹的新 IAP/IAB 东西。
  • IAP 在 Android 上实现起来可能非常棘手,因为需要设置很多小东西才能测试购买。如果您使用 MobiShop (assetstore.unity3d.com/en/#!/content/63636) 之类的工具,您可以在编辑器中进行测试时启动并运行它。

标签: android unity3d service unity5 in-app


【解决方案1】:

好的,不要从@JoeBlow 的回答中拿走,但那里有一些不好的信息,这对于评论来说太长了。

APK

确实需要在 Alpha 或 Beta 发布渠道中拥有您的 APK,但您不必下载它(就个人而言,我们使用 Alpha)。你可以侧载它没有问题。唯一的问题是 APK 需要“验证”(一两个小时,或者如果是新应用程序则稍长一些)并且您正在加载的版本必须相同 - 即如果您有 1.0.0 版在 App Store 上,然后如果您的手机上有 1.0.1,您将无法购买任何东西,并显示“产品不可用”消息。

因此,如果您上传基本 shell 以进行验证,您可以继续在本地开发和加载以正确实施。

测试人员

为了测试您的购买,您需要访问 Alpha/Beta 渠道。您可以通过与他们共享特定链接(开放式 Alpha 测试)来执行此操作,或者通过设置特定的 Google 组并让他们通过访问特定的 URL(格式为 https://play.google.com/apps/testing/YOUR_APP_ID)来确认。

他们只需要这样做一次。

您可以通过点击 Google Play 开发者控制台“APK”部分中的相关标签来选择要使用的系统。

顺便说一句,这也意味着如果他们启用了自动更新,那么他们将自动获取您推送到频道的任何更新的 APK - 如果您在尝试使用正式版 APK 时偶尔会看到奇怪的行为,请记住这一点并且您在 Alpha 中有一个新版本

购买付款

可以为它们付款,并立即获得退款,为什么当你可以免费获得它们时购买呢? :)

在您的 Google Play 开发者控制台上,左侧有“所有应用程序”、“游戏服务”、“报告”、“设置”等选项。点击“设置”,有一个名为“许可测试”的部分.您可以在此处添加电子邮件地址,假设“许可证测试响应”为“RESPOND_NORMALLY”,则不会向他们收取购买费用 - 您将看到消息“这是测试订单,您不会被收取费用”购买弹出窗口,因此您知道它已生效(添加或删除电子邮件地址可能需要几分钟才能更新)。

您仍然会收到一封电子邮件,就像是正常购买一样,但他们会以 0.00 欧元的价格和一个不正常的交易 ID 显示,大约 2 周后,您会收到另一封电子邮件,说您的付款已被取消.

确实需要设置有效的付款选项。

签署您的申请

据我所知,您确实需要在测试时构建一个签名的 APK(即不是调试的)。我还没有真正测试过这个,因为我们总是自然而然地构建签名,所以用一点盐来拿那个。

陷阱

这个系统的坏处是你不能使用开发者帐户购买 - 所以如果你的 Google Play 帐户是 foo@gmail.com,你必须使用 bar@gmail.com 来实际测试它.这是 Google 所做的令人讨厌的事情之一。

还有最初的等待,因为 Google 不会真正告诉您您的应用何时通过验证,因此您可能已经让一切正常,但购买仍然无法通过,因为您的 APK 仍未准备好(无论是外壳还是生产)。最坏的情况,在下班/睡觉前上传,早上应该没问题。

【讨论】:

    【解决方案2】:

    好的,这是一个很棒的提示,

    事实上,对于 google IAB,它只有在你从 playstore 下载为 beta 版本后才能工作,如果你只是在本地加载 .apk,它不会工作。

    这很烦人,但就是这样。

    请注意,相比之下,当您使用 PlayGames(发布成就等)时,您可以实际上只是将其作为 apk 加载到本地,并且成就会奏效。 (同样,实际的 IAB 将工作。)

    您必须在 Playstore 上将其作为测试版下载,然后以这种方式加载。

    并且您必须是该应用在 Playstore 上注册的 Beta 测试人员。

    (而且!!!!!!!!!别忘了,Google 实际上会在您测试时向您收费,您确实需要您的信用卡/贝宝/任何可以用来测试购买的东西。 )(您可以立即获得退款,但您必须使用信用卡才能在 Playstore 上购买真实的东西。)

    注意对比

    使用 Apple iOS IAP,可以从 Xcode 本地构建、签名和加载 - 然后您可以通过这种方式测试 Apple IAP。您不必等待它在 TestFlight 上。但不适用于 Android!

    所以在两个平台上是不同的。

    【讨论】:

    • Unity IAB 仍然无法工作,如果我从 Playstore 下载游戏。你的意思是什么,它不会工作?在我的问题中,我无法通过 Unity inapp api 获得产品。只是未初始化。重要提示:我正在尝试整合 OpenIAB 服务及其运作良好谢谢您的回答!
    • 好的,要明确一点,您实际上是在 Playstore 上构建的,并且您将其下载为 Beta 版?必须是“测试版”。
    • 请在您的问题中点击“编辑”,并在您尝试购买商品时发布您的安卓屏幕截图....
    猜你喜欢
    • 2020-04-06
    • 2014-05-31
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多