【问题标题】:Android in-app billing failedAndroid 应用内结算失败
【发布时间】:2016-01-11 14:43:44
【问题描述】:

我已经集成了名为 Trivial Drive 的 Google Android 项目:

1.在我的 Google 开发者控制台中的 beta-test

中添加这个签名的 APK

2.我添加了 1 位测试人员(我的个人 gmail toto@gmail.com

3.我为应用程序类型设置了“free

4.我添加了1个集成产品;这是一个带有价格等的订阅(名为“premium”)。

5.我将这个签名的 APK(来自 Android Studio)推送到我的手机

6.我在手机上使用toto@gmail.com 登录

7.我在这个项目的主活动中点击“Upgrade my car”,出现错误信息:无法购买这篇文章(Iab结果:用户已取消。响应:-1005:用户已取消)

您对为什么会出现此错误有一些解释吗?我将我的应用配置为免费应用,是否可以,即使我使用一些集成产品(如订阅等)?

有关信息:

static final String SKU_PREMIUM = "premium";

然后:

public void onUpgradeAppButtonClicked(View arg0) {
    Log.d(TAG, "Upgrade button clicked; launching purchase flow for upgrade.");
    setWaitScreen(true);
    String payload = "";

    mHelper.launchPurchaseFlow(this, SKU_PREMIUM, RC_REQUEST,
            mPurchaseFinishedListener, payload);
}

在我的 Google Play 控制台开发人员中,我有这个集成产品:

非常感谢你们!

【问题讨论】:

    标签: android billing


    【解决方案1】:

    当应用内购买提示/对话框被关闭时,会显示消息user canceled. response:-1005:User cancelled

    在向用户显示进行应用内购买的提示后,您可能正在做一些事情,导致应用内购买的对话框/弹出窗口消失,从而导致消息消失。在显示应用内购买对话框并正确等待交易完成后,请确保您没有做类似的事情。

    更新您的问题后的详细​​信息:

    sku 看起来像托管产品。它可能已经被购买了。确保在让用户再次购买之前消耗它。在您的情况下,它只能购买一次(从逻辑上讲 - 因为它是应用程序升级到高级版)。因此,您应该检查它是否已经购买并显示适当的消息。

    托管应用内商品

    托管的应用内商品是拥有其所有权的商品 由 Google Play 跟踪和管理的信息。当用户购买 受管理的应用内商品,Google Play 存储购买信息 每个用户的每个项目。这使您可以稍后查询 Google 随时播放以恢复特定用户拥有的物品的状态 购买。此信息在 Google Play 服务器上持久存在 即使用户卸载应用程序或更换设备。

    如果您使用的是版本 3 API,您还可以使用托管项目 在您的应用程序中。您通常会实现消费 可以多次购买的物品(例如游戏币、 燃料或魔法咒语)。被管理的项目一经购买,就不能 再次购买,直到您消费该项目,通过发送消费 向 Google Play 请求。了解有关应用内产品的更多信息 消费,见Consuming Items

    Source

    【讨论】:

    • 不,一点也不。当我在 Google 结算弹出窗口上按 OK 时,会出现用户取消消息。
    • 然后检查该项目是否存在,即您传递了正确的 sku。
    • 我已经完成了包含更多详细信息的初始帖子。谢谢!
    • 它是一个被管理的产品,可能已经被购买了。检查更新的答案。
    • 病毒,我已经检查了这个选项,但不是那样。我创建了另一个SKU(添加一个新的集成产品+通过“premium_new”更改代码),错误是一样的......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    • 2012-10-11
    • 2011-07-02
    • 2011-07-23
    相关资源
    最近更新 更多