java - Android Billing 如何使用 setAccountId 或将付款分配给自定义标识符

标签 java android google-play google-play-services android-billing

我想**允许我的用户在多个设备上使用我的应用程序**。用户必须通过 firebase 身份验证登录我的应用程序。

问题是付款分配给在设备上签名的帐户 (google play),而不是使用登录到应用程序的帐户。** 从 firebase auth 我可以得到一个电子邮件地址我的应用程序的用户 - 这可以用作一些唯一标识符。

可视化问题:

Problem visualized

我注意到在计费流程中有 .setAccountId("some id") 我想我可以用它来填写用户的唯一标识符。但是如何使用它查询购买?

BillingFlowParams.Builder builder = new BillingFlowParams.Builder()
                .setAccountId("some id")
                .setSku(PREMIUM_YEAR_SUBS).setType(BillingClient.SkuType.SUBS);

TLDR:我只想检索与我的APP用户帐户相关联的购买,不是设备帐户 (google play 当前登录用户)

最佳答案

要使用 accountId 实现计费,请尝试使用 getBuyIntentExtraParams()getBuyIntent() 方法相比,该方法提供了额外的功能。

使用此方法,您可以使用具有以下描述的accountId:

Optional obfuscated string that is uniquely associated with the user's account in your app. If you pass this value, Google Play can use it to detect irregular activity, such as many devices making purchases on the same account in a short period of time.

此外,您可能还想使用所讨论的应用内结算 API 检查典型的购买流程 here .

关于java - Android Billing 如何使用 setAccountId 或将付款分配给自定义标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47097529/

相关文章:

Android 和带 SSL 的 HTTPS

google-api - Travis 尝试将应用程序提交到 Google 的 Play 商店时出错

android - 此版本不会添加或删除任何 APK 或 App Bundle

java - 特定时间间隔之间的警报

android - Infinite ObjectAnimator with interpolator...如何仅加速初始启动?

java - Android Studio 仅在 Ubuntu 上以控制台模式运行

android - Google Play Alpha 测试 - 无可用更新

java - Mac OSX 10.10.2 上的 JDK 仍指向 1.6

java - 找不到 apduToolTask

java - 从链接列表中删除索引处的项目?