android - 应用内购买在购买后获取买家电子邮件

标签 android email in-app-purchase android-pay

有没有办法在使用谷歌钱包购买后获取买家的电子邮件,

我正在使用 IabHelper.launchSubscriptionPurchaseFlow,在成功购买(订阅)后只检索到两个对象(IabResult 和 Purchase),但不幸的是,其中没有一个包含买家的电子邮件。

The senario 是,如果用户有多个电子邮件连接到他的 Android 设备,并且他有一张信用卡连接到他的辅助电子邮件之一,我需要获取用于购买的电子邮件地址才能使用它在服务器端。

我希望有人能帮助我解决这个问题,因为我花了很多时间搜索这个问题,很遗憾我没有找到解决方案。

最好的问候

最佳答案

我认为在成功的购买响应中,您无法存储买家的电子邮件。

因此,通过使用 AccountManager 类,您只需在 onIabPurchaseFinished 中调用以下方法即可。

public static String getemailId(Activity act){
        Pattern emailPattern = Patterns.EMAIL_ADDRESS;
        Account[] accounts= AccountManager.get(act).getAccounts();
        String userEmailId="";
        for (Account account : accounts) {
            if (emailPattern.matcher(account.name).matches()) {
                userEmailId = account.name;

            }
        }
        return userEmailId;
}

此方法将返回买家的 email_id 以供将来使用。

希望对您有所帮助。

关于android - 应用内购买在购买后获取买家电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26135531/

相关文章:

android - BroadcastReceiver 发送通知并在 Activity 时更新 ui, Activity

android - Android:免费提供应用内购买商品

android - Android 播放带有身份验证的 RTSP 视频流

html - Outlook Web App 系统地删除对齐 ="center"属性

ruby-on-rails - Rails 转义了可以通过电子邮件客户端(Gmail、Outlook)自动链接的内容

windows - 为什么 Thunderbird 通过 MAPI 发送邮件后总是立即返回?

ios - 核心数据同步的应用内购买?

ios - 如何为apple iap 服务器到服务器通知设置测试和生产环境

android - Asmack 18 连接 : google. com :5222 Exception: Could not connect to talk. google.com 远程服务器超时

java - 将图像序列化为字符串