我正在尝试使用新的Android Billing Client library(1.0)
以前,在尝试执行购买时,可以选择向intent添加额外数据。
但是,在使用新库时,事情已经在很大程度上得到了简化。但是有没有办法将开发者有效负载(额外字符串)添加到购买流程中?
答案 0 :(得分:1)
计费库的新版本支持开发人员有效负载。
您可以在了解购买或使用它时设置开发人员有效载荷。
val client: BillingClient = ...
val listener: AcknowledgePurchaseResponseListener = ...
val acknowledgePurchaseParams =
AcknowledgePurchaseParams.newBuilder()
.setPurchaseToken(/* token */)
.setDeveloperPayload(/* payload */)
.build()
client.acknowledgePurchase(acknowledgePurchaseParams, listener)
答案 1 :(得分:0)
找到答案,名字已经改变,因此混乱。
BillingFlowParams构建器公开了一个名为setAccountId(String accountId)
的函数。该功能的定义是:
指定可选的混淆字符串,该字符串与用户的帐户唯一关联 你的应用。 如果您传递此值,Google Play可以使用它来检测不规则的活动,例如很多 设备在短时间内在同一帐户上购物。不要使用 此字段的开发者ID或用户的Google ID。另外,这个领域不应该 以明文形式包含用户的ID。我们建议您使用单向哈希生成 来自用户ID的字符串,并将散列字符串存储在此字段中。
我认为这是指定开发人员有效负载的新方法,或者用于额外验证层的任何额外字符串。 所以代码看起来像这样:
private fun makePurchaseFromGoogle(developerPayload : String) {
val purchaseParams = BillingFlowParams.newBuilder()
.setSku(product.sku)
.setType(product.type)
.setAccountId(developerPayload) // dev-payload
.build()
googleBillingClient.launchBillingFlow(activity, purchaseParams)
}