首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有方法在使用Inapp购买时添加额外的数据?

是否有方法在使用Inapp购买时添加额外的数据?
EN

Stack Overflow用户
提问于 2020-06-08 07:40:23
回答 1查看 1.9K关注 0票数 2

这是一个风景,我们有多个老师在我们的应用程序。用户可以从老师那里购买三种不同的物品,价格分别为20美元、30美元、40美元。所以我在google控制台上创建了3款产品。当用户购买一些物品时,我怎么知道他是从哪个老师那里买的?我看不出有什么办法在购买这件物品时设置额外的数据。人们一般是如何处理这些案件的?

这是我用来启动支付屏幕的方法。

代码语言:javascript
运行
复制
 fun buyAnItem(activity:Activity,skuDetails: SkuDetails) {
    val flowParams = BillingFlowParams.newBuilder()
        .setSkuDetails(skuDetails)
        .build()
    val responseCode =
        billingClient.launchBillingFlow(activity, flowParams)
    log(responseCode.toString())
}

我看不到在SkuDetailsBillingFlowParams.newBuilder()中设置额外数据的任何方法

我是如何看到我们可以为BillingFlowParams.newBuilder() .setObfuscatedAccountId().setObfuscatedProfileId()设置这两个参数的,我应该使用这些参数吗?在我看来是个黑客。

我想拿回购买对象中的额外参数

代码语言:javascript
运行
复制
 override fun onPurchasesUpdated(
    billingResult: BillingResult?,
    purchases: MutableList<Purchase>?
) {
        for (purchase in purchases) {
           consumePurchase(purchase)
       }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-19 12:23:45

似乎使用setObfuscatedProfileIdsetObfuscatedAccountId是正确的方法。为不同的用户设置一些唯一的值。每个属性最多允许64位牧师。

代码语言:javascript
运行
复制
val flowParams = BillingFlowParams.newBuilder()
        .setSkuDetails(skuDetails)
        .setObfuscatedProfileId(profileId)  //Some data you want to send
        .setObfuscatedAccountId(id)  //Some data you want to send
        .build()
    val responseCode =
        billingClient?.launchBillingFlow(activity, flowParams)

检索:-您可以使用purchase.accountIdentifiers?.obfuscatedAccountIdpurchase.accountIdentifiers?.obfuscatedProfileId检索数据

代码语言:javascript
运行
复制
override fun onPurchasesUpdated(
    billingResult: BillingResult?,
    purchases: MutableList<Purchase>?
) {

    if (billingResult?.responseCode == BillingClient.BillingResponseCode.OK && purchases != null) {
        for (purchase in purchases) {
            CoroutineScope(Dispatchers.Main).launch {
                log(purchase.accountIdentifiers?.obfuscatedAccountId)
                log(purchase.accountIdentifiers?.obfuscatedProfileId)
                consumePurchase(purchase)
            }
        }
    }
}

正式文件:- https://developer.android.com/google/play/billing/developer-payload#attribute

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62257225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档