Библиотека Android Billing Client: как указать полезную нагрузку разработчика (дополнительные данные)

Я пытаюсь использовать новую библиотеку платежного клиента Android (1.0).

Раньше при попытке совершить покупку можно было добавить в намерение дополнительные данные.

Однако при использовании новой библиотеки все значительно упростилось. Но есть ли способ добавить полезную нагрузку разработчика (дополнительную строку) в процесс покупки?


person rgv    schedule 27.03.2018    source источник
comment
См. мой ответ здесь stackoverflow.com/a/62470237/6478047   -  person Manohar    schedule 19.06.2020


Ответы (2)


Новая версия биллинговой библиотеки поддерживает полезную нагрузку разработчика.

Вы можете установить полезную нагрузку разработчика при подтверждении покупки или ее использовании.

val client: BillingClient = ...
val listener: AcknowledgePurchaseResponseListener = ...

val acknowledgePurchaseParams =
AcknowledgePurchaseParams.newBuilder()
    .setPurchaseToken(/* token */)
    .setDeveloperPayload(/* payload */)
    .build()

client.acknowledgePurchase(acknowledgePurchaseParams, listener)

Прикрепите полезную нагрузку разработчика в Android Billing Library v2.0

person Mahmoud    schedule 22.05.2019

Ответ на него нашел, имена изменены, отсюда и путаница.

Построитель BillingFlowParams предоставляет функцию с именем setAccountId(String accountId). Определение этой функции:

Укажите необязательную запутанную строку, однозначно связанную с учетной записью пользователя в вашем приложении. Если вы передадите это значение, Google Play сможет использовать его для обнаружения нерегулярной активности, например, когда многие устройства совершают покупки в одной и той же учетной записи за короткий промежуток времени. Не используйте для этого поля идентификатор разработчика или идентификатор Google пользователя. Кроме того, это поле не должно содержать идентификатор пользователя в открытом виде. Мы рекомендуем использовать однонаправленный хэш для создания строки из идентификатора пользователя и сохранения хешированной строки в этом поле.

Я думаю, что это новый способ указать полезную нагрузку разработчика или любую дополнительную строку для дополнительного уровня проверки. Таким образом, код будет выглядеть примерно так:

private fun makePurchaseFromGoogle(developerPayload : String) {
    val purchaseParams = BillingFlowParams.newBuilder()
            .setSku(product.sku)
            .setType(product.type)
            .setAccountId(developerPayload) // dev-payload
            .build()
    googleBillingClient.launchBillingFlow(activity, purchaseParams)
}
person rgv    schedule 27.03.2018
comment
Как вы его извлекаете? - person Racu; 06.07.2018
comment
идентификатор учетной записи не является полезной нагрузкой - person MaxF; 20.05.2019
comment
См. мой ответ здесь stackoverflow.com/a/62470237/6478047 - person Manohar; 19.06.2020