有没有办法在使用Inapp购买时添加额外的数据?

问题描述 投票:0回答:1

这是一个场景,我们有多个老师在我们的应用程序。用户可以购买3个不同的项目,从老师的成本20元,30元,40元。所以,我创建了3个产品在谷歌播放控制台。当用户购买一些项目,我怎么能知道他从哪个老师购买的项目?我没有看到任何方法来设置额外的数据时,购买的项目。人们一般如何处理这些情况?

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

 fun buyAnItem(activity:Activity,skuDetails: SkuDetails) {
    val flowParams = BillingFlowParams.newBuilder()
        .setSkuDetails(skuDetails)
        .build()
    val responseCode =
        billingClient.launchBillingFlow(activity, flowParams)
    log(responseCode.toString())
}

我没有看到任何方法可以设置额外的数据在 SkuDetailsBillingFlowParams.newBuilder()

我怎么曾经看到过我们可以设置这2个参数,我们可以设置为 BillingFlowParams.newBuilder() .setObfuscatedAccountId().setObfuscatedProfileId() 我应该用这些吗? 它看起来像一个黑客给我。

我想找回采购对象中的额外参数。

 override fun onPurchasesUpdated(
    billingResult: BillingResult?,
    purchases: MutableList<Purchase>?
) {
        for (purchase in purchases) {
           consumePurchase(purchase)
       }
    }
}
android in-app-purchase in-app-billing
1个回答
0
投票

似乎使用 setObfuscatedProfileIdsetObfuscatedAccountId 是正确的方法。为不同的用户设置一些独特的值,每个属性最多允许64个代码。

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

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.comgoogleplaybillingdeveloper-payload#attribute。

© www.soinside.com 2019 - 2024. All rights reserved.