我正在尝试使用新的Android 计费客户端库(1.0)
以前,在尝试执行购买时,可以选择向意图添加额外数据。
但是,在使用新库时,事情已经大大简化了。但是有没有办法将开发人员的有效负载(额外的字符串)添加到购买流程中?
我正在尝试使用新的Android 计费客户端库(1.0)
以前,在尝试执行购买时,可以选择向意图添加额外数据。
但是,在使用新库时,事情已经大大简化了。但是有没有办法将开发人员的有效负载(额外的字符串)添加到购买流程中?
新版计费库支持开发者有效载荷。
您可以在确认购买或消费时设置开发人员有效负载。
val client: BillingClient = ...
val listener: AcknowledgePurchaseResponseListener = ...
val acknowledgePurchaseParams =
AcknowledgePurchaseParams.newBuilder()
.setPurchaseToken(/* token */)
.setDeveloperPayload(/* payload */)
.build()
client.acknowledgePurchase(acknowledgePurchaseParams, listener)
找到了答案,名称已更改,因此感到困惑。
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)
}