使用多个帐户的应用内购买
我在应用程序购买/订阅中遇到问题:
如果设备上有多个帐户,我无法获得用第二个帐户进行的购买交易。 有时这可以通过从Google Playnetworking界面安装应用程序暂时修复,但过了一段时间,购买将不会出现在查询中,迫使用户重新安装。
我正在使用这个示例中的IabHelper类。
做一些谷歌search,我发现这个错误存在一段时间,但不幸的是,我不能找出错误是在IabHelper类还是在谷歌方面。
我想提请大家注意Google,所以他们会在IabHelper课程或Play服务中提供一个适当的解决方法,或提供信息,如何处理。
我正在使用一个应用程序中的代码(写作的时候)900.000活跃的用户安装,我必须触发相当多的退款,因此。
如果有这个问题,我错过了,请让我知道。
编辑:有时,即使手机上只有一个帐户,也无法检索购买。
似乎没有一条解决这个问题的方法,但我们试试吧。
-
当用户第一次安装应用程序时,获取他/她的主要电子邮件或设备上的所有帐户
-
询问用户将来会使用哪些电子邮件进行付款/哪些帐户在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" />
用户select电子邮件后,您可以通过电子邮件发送链接以确认此电子邮件地址
-
领导所有的付款给特定的电子邮件。
方法2
将来使用新的“使用Gmail发送和接收资金”
-
创build一个电子邮件意向,并发送特定的数据到电子邮件意向和付款。
-
成功后,发送一个代码给用户的电子邮件
-
使用代码来激活他们所做的任何购买。
方法3
使用其他支付库或网关进行应用程序购买,而不是使用Google play。
肯定是在应用程序帐单服务apis中的一个错误。
这是一个类似的问题,正如其中一个答案中提到的那样,可能需要引入login机制,并将从帐户购买的内容以encryption文件或类似方式存储到服务器或本地设备上。
几个月后,我遇到了同样的问题。 经过几个小时的寻找解决scheme,我想出了一个这样的工作,
您可以使用OAuth 2.0。
但是你也必须从后端pipe理它。 我不是后端开发人员,所以我不知道它在后端如何,但在应用程序方面我做了这样的事情,
您可以使用第一个允许在服务端进行身份validation的Google帐户。 OAuth 2.0是一个简化的工具,让开发者轻松地让用户访问你的应用程序。 OAuthHmacSigner类确实pipe理authentication。
signer = new OAuthHmacSigner(); signer.clientSharedSecret = Constants.CONSUMER_SECRET;
然后,Android活动使用以下代码启动OAuthstream程:
launchOauth.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { startActivity(new Intent().setClass(v.getContext(), PrepareRequestTokenActivity.class)); } });
为了获得OAuth 2.0访问令牌,您只需调用:
AccountManager.getAuthToken()
我希望这可能有助于:)
我有两个帐户,但一个不起作用。 我所做的是我进入了android的设置,然后进入帐户首选项。 我把我的主账户从不工作的账户改成了工作账户。 然后,我将新帐户分配给所有应用程序(包括Google Play)的主要帐户。 这对我有效。 有时,如果由于某种原因无法正常工作,您也可以上网,并通过互联网访问Google Play商店。
尝试获取重复…以.apk或.xcode结尾的文件签名的重复点
我不确定这是否是您正在search的答案,但也许设置共享的Google Play家庭库就足够了。 它适用于多达5个用户共享相同的购买(应用程序,音乐,电影等),如果需要的话。
(请参阅: https : //support.google.com/googleplay/answer/7007852?hl = zh_CN )