多个帐户的应用内购买

时间:2015-03-02 13:53:24

标签: android google-play google-play-services in-app-billing android-billing

我在应用购买/订阅中遇到的问题

如果设备上有多个帐户,我无法获得使用第二个帐户进行的购买。 通过从Google Play网络界面安装应用程序,有时可以暂时解决此问题,但过了一段时间后,购买将不会出现在查询中,从而迫使用户重新安装。

我正在使用this sample中的IabHelper类。

进行一些Google搜索,我发现此错误已存在一段时间,但遗憾的是我无法查明错误是在IabHelper类中还是在Google方面。

我想引起人们对谷歌的关注,因此他们会在IabHelper课程或Play服务中为此提供适当的解决方案,或提供信息,以及如何处理。

我正在使用应用程序中的代码(在撰写本文时)900.000活跃用户安装,因此我必须触发相当多的退款。

如果有错误的解决方法,请告诉我。

编辑: 即使手机上只有一个帐户,有时也无法检索购买。

7 个答案:

答案 0 :(得分:1)

似乎没有单向的方法可以解决这个问题,但让我们尝试这样做。

  1. 当用户首次安装应用时,请在设备上获取他/她的主电子邮件或所有帐户

  2. 询问用户他们将来会使用哪些电子邮件进行付款/或哪个帐户对Google Play有效。

    您可以使用此代码获取帐户

    Pattern emailPattern = Patterns.EMAIL_ADDRESS; // API level 8+
    Account[] accounts = AccountManager.get(context).getAccounts();
    for (Account account : accounts) {
        if (emailPattern.matcher(account.name).matches()) {
            String possibleEmail = account.name;
            ...
        }
    }
    

    别忘了要求许可

    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    

    用户选择电子邮件后,您可以通过电子邮件发送链接以确认此电子邮件地址

  3. 将所有付款引导至该特定电子邮件。

  4. 方法2

    使用新的&#34;发送&amp;使用Gmail&#34;将来

    1. 创建电子邮件意图并将特定数据发送到电子邮件意图并付款。

    2. 成功后,将代码发送到用户电子邮件

    3. 使用该代码激活他们购买的任何产品。

    4. 方法3

      使用其他付款库或网关进行应用内购买而非Google Play。

答案 1 :(得分:0)

确保应用内结算服务apis中存在错误。

This 是一个类似的问题,正如其中一个答案所述,您可能需要引入登录机制并将从帐户中购买的商品存储到您的服务器或本地设备在加密文件或类似的东西。

答案 2 :(得分:0)

几个月后,我遇到了同样的问题。 经过几个小时的寻找解决方案,所有我想出了类似的工作,

您可以使用OAuth 2.0。

但您还必须从后端管理它。 我不是后端开发人员,所以我不知道它在后端是如何做的,但在app方面我做了类似的事情,

您可以使用第一个允许在服务端进行身份验证的Google帐户。 OAuth 2.0是一种工具,可以简化并使开发人员轻松地允许用户访问您的应用程序。 OAuthHmacSigner类确实管理身份验证。

signer = new OAuthHmacSigner();
signer.clientSharedSecret = Constants.CONSUMER_SECRET;

然后Android活动使用以下代码启动OAuth流程:

launchOauth.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        startActivity(new Intent().setClass(v.getContext(),
            PrepareRequestTokenActivity.class));
    }
});

要获取OAuth 2.0访问令牌,您只需调用:

AccountManager.getAuthToken()

我希望这可能会有所帮助:)。

答案 3 :(得分:0)

我有两个帐户,但有一个不起作用。我做的是我进入android的设置,然后进入帐户首选项。我将主帐户从不工作的帐户更改为工作帐户。然后我将新帐户指定为我所有应用程序的主要帐户,包括Google Play。这对我有用。有时,如果由于某种原因无效,您也可以上网并通过互联网访问Google Play商店。

答案 4 :(得分:0)

尝试获取dup ...复制点,文件签名以.apk或.xcode

结尾

答案 5 :(得分:0)

正如其他人所指出的,这是 Google Play 结算库的一个错误。如果它影响到您,请在 https://issuetracker.google.com/issues/139597485 上将此问题加星标,以便 Google 能够注意到它(真的吗?)并开始着手修复。

答案 6 :(得分:-2)

我不确定这是否是您正在搜索的答案,但也许设置共享的Google Play家庭图库就足够了。如果需要,它最多可供5位用户共享相同的购买内容(应用,音乐,电影等)。

(参见:https://support.google.com/googleplay/answer/7007852?hl=en