【问题标题】:Purchasing Single In-App Item from Multiple Account Ambiguity从多个帐户歧义中购买单个应用内商品
【发布时间】:2017-03-02 05:36:59
【问题描述】:

我的应用面临严重的边缘情况。我将尝试解释情况。

我有一个通过应用内购买提供一些优质内容的应用。用户在其设备上拥有一个与 Play 商店相关联的电子邮件 ID。

这是场景:

1) 用户使用 abc@gmail.com 登录应用并购买高级内容。此人从未购买过高级内容,因此他的“isPremiumPurchased 标志为false

购买成功,我授予他高级内容并将标记更改为 true。 按预期工作。

2) 用户在我的应用程序中注销他的帐户并使用不同的帐户再次登录到我的应用程序,例如 xyz@gmail.com。他继续再次购买优质内容。此帐户是另一个帐户,因此他的“isPremiumPurchased”标志为false

这个用户有一个与前一个用户不同的帐户,对吧?但是,如果他尝试购买,我总是得到“物品已拥有”,这也是意料之中的。该项目已由与同一 Play 商店地址关联的另一个帐户购买,现在此帐户无法购买。

处理这种情况的理想方法应该是什么?我不应该允许第二个帐户访问高级内容。这是一个完全独立的帐户,不是吗?我什至不能消费该项目。我该如何解决这个问题

【问题讨论】:

    标签: android in-app-purchase in-app-billing


    【解决方案1】:

    如果您想根据应用中使用的电子邮件来区分购买,则必须将购买与用于登录应用的电子邮件相关联。我不确定,但您可以为此使用 developerPayload 参数。

    购买:

    iabHelper.launchPurchaseFlow(activity, SKU1, RC_REQUEST, purchaseListener, current_email);
    

    验证:

    private boolean validateDeveloperPayload(Purchase purchaseDetails) {
            String payload = purchaseDetails.getDeveloperPayload();
            if(payload.equals(current_email)){
                return true;    
            }
            return false;
        }
    

    【讨论】:

    • 这里的想法很不错。让我试一试。
    【解决方案2】:

    非常简单。应用内购买与 Google Play 商店中的主帐户相关联。

    假设您有一个与 Google Play 商店关联的帐户 myaccount@gmail.com。

    这是场景:

    1) 用户使用 abc@gmail.com 登录应用并购买 优质内容。此人从未购买过高级内容 所以他的“isPremiumPurchased 标志是假的。

    购买成功,我授予他高级内容和 将标志更改为真。按预期工作。

    高级内容购买与 myaccount@gmail.com 相关联,而不是与您的应用本地的 abc@gmail.com 相关联。

    2) 用户在我的应用程序中退出他的帐户并登录到我的应用程序 再次使用不同的帐户,例如 xyz@gmail.com。他继续 再次购买优质内容。这个账号不一样 帐户,因此他的“isPremiumPurchased”标志为假。

    这个用户有一个与前一个用户不同的帐户,对吧?但如果 他尝试购买,我总是得到“物品已拥有”,即 预计也是如此。

    用户从您的应用程序而不是 Google Play 中退出。因此,当您检查高级项目的购买状态时,Google Play 会在您购买时做出响应。

    该物品已被另一个帐户购买 与同一个 Play 商店地址关联,现在是这个帐户 买不到。

    请确定切换帐户的位置,是在您的应用内还是在 Google 帐户内?

    这是一个简短的简介;

    使用帐户“xxx@gmail.com”从 Playstore 下载并安装应用,购买商品。 在尚未完成商品购买的设备“yyy@gmail.com”中添加 google 帐户。 将 playstore 切换到帐户 yyy@gmail.com 和测试项目。 商品仅处于购买状态。

    下载应用程序的帐户被视为主要帐户,以查看 Playstore 的购买详细信息

    使用帐户“xxx@gmail.com”从 Playstore 下载并安装应用,购买商品。 在尚未完成商品购买的设备“yyy@gmail.com”中添加 google 帐户。 将 playstore 切换到帐户 yyy@gmail.com 和测试项目。 商品仅处于 PURCHASE 状态。 从设备中删除帐户 xxx@gmail.com,然后检查该项目。 商品处于未购买状态。

    因为 'xxx@gmail.com' 被删除,所以主帐户是 'yyy@gmail.com'。 现在没有购买“yyy@gmail.com”的 IN APP 项目。

    【讨论】:

    • 你没有正确理解我的问题。请再次阅读问题。
    猜你喜欢
    • 1970-01-01
    • 2012-06-09
    • 1970-01-01
    • 2015-05-02
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多