我遇到了应用内购买/订阅问题:
如果设备上有多个帐户,我无法获得使用第二个帐户进行的购买。 有时可以通过从 Google Play 网络界面安装应用程序来临时解决此问题,但一段时间后,购买的内容不会出现在查询中,从而迫使用户重新安装。
我正在使用 this sample 中的 IabHelper 类.
做一些谷歌搜索,我发现这个错误存在一段时间,但不幸的是我无法找出错误是在 IabHelper 类中还是在谷歌方面。
我想提请注意 Google,因此他们在 IabHelper 类或 Play 服务中为此提供了适当的解决方案,或者提供了如何处理此问题的信息。
我在一个应用程序中使用代码,(在撰写本文时)有 900.000 个活跃用户安装,因此我必须触发大量退款。
如果我错过了解决此问题的方法,请告诉我。
编辑: 有时,即使手机上只有一个帐户,也根本无法检索购买的内容。
最佳答案
似乎没有单一的方法可以解决这个问题,但让我们尝试这样做。
当用户首次安装应用时,获取他/她的主要电子邮件地址或设备上的所有帐户
询问用户他们将使用什么电子邮件进行 future 付款/或哪个帐户可用于 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" />
用户选择邮箱后,您可以通过邮箱发送链接确认该邮箱
将所有付款引导至该特定电子邮件。
方法二
future 使用新的“使用 Gmail 汇款和收款”
创建电子邮件 Intent 并将特定数据发送到电子邮件 Intent 并进行付款。
成功后,向用户邮箱发送代码
使用代码激活他们购买的任何商品。
方法3
使用其他支付库或网关进行应用内购买,而不是 Google Play。
关于android - 具有多个帐户的应用内购买,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28811490/