Полезная нагрузка разработчика исторически использовалась для различных целей, включая предотвращение мошенничества и привязку покупок к нужному пользователю. В версии 2.2 и более поздних версиях библиотеки Google Play Billing Library предполагаемые варианты использования, которые раньше полагались на полезную нагрузку разработчика, теперь полностью поддерживаются в других частях библиотеки.
Благодаря этой поддержке мы упразднили полезную нагрузку для разработчиков, начиная с версии 2.2 Библиотеки выставления счетов Google Play. Методы, связанные с полезной нагрузкой разработчика, устарели в версии 2.2 и были удалены в версии 3.0. Обратите внимание, что ваше приложение может продолжать получать полезные данные разработчика для покупок, совершенных с использованием предыдущих версий библиотеки или AIDL.
Подробный список изменений можно найти в примечаниях к выпуску Google Play Billing Library 2.2 . и примечания к выпуску библиотеки Google Play Billing Library 3.0 .
Проверка покупки
Чтобы гарантировать, что покупки являются подлинными, а не подделанными или воспроизведенными, Google рекомендует использовать токен покупки (полученный из метода getPurchaseToken()
в объекте Purchase
) вместе с API-интерфейсами разработчика Google Play для проверки подлинности покупок. Дополнительную информацию см. в разделе Борьба с мошенничеством и злоупотреблениями .
Атрибуция покупки
Многим приложениям, особенно играм, необходимо гарантировать, что покупка правильно связана с игровым персонажем/аватаром или профилем пользователя в приложении, который инициировал покупку. Начиная с библиотеки Google Play Billing Library 2.2, ваше приложение может передавать в Google скрытые идентификаторы учетной записи и профиля при запуске диалогового окна покупки и возвращать их при получении покупки.
Используйте параметры setObfuscatedAccountId()
и setObfuscatedProfileId()
в BillingFlowParams
и получите их с помощью метода getAccountIdentifiers()
в объекте Purchase
.
Свяжите метаданные с покупкой
Google рекомендует хранить метаданные о покупке на защищенном внутреннем сервере, который вы поддерживаете. Эти метаданные покупки должны быть связаны с токеном покупки, полученным с помощью метода getPurchaseToken
в объекте Purchase
. Эти данные можно сохранить, передав токен покупки и метаданные на серверную часть при вызове PurchasesUpdatedListener
после успешной покупки.
Чтобы гарантировать связь метаданных в случае прерывания процесса покупки, Google рекомендует хранить метаданные на вашем внутреннем сервере перед запуском диалогового окна покупки и связывать их с идентификатором учетной записи вашего пользователя, приобретаемым SKU и текущей отметкой времени.
Если поток покупки прерывается до вызова PurchasesUpdatedListener
, ваше приложение обнаружит покупку, как только ваше приложение возобновит работу и вызовет BillingClient.queryPurchasesAsync()
. Затем вы можете отправить значения, полученные из методов getPurchaseTime()
, getSku()
и getPurchaseToken()
объекта Purchase
, на свой внутренний сервер для поиска метаданных, связывания метаданных с токеном покупки и продолжения обработки покупки. Обратите внимание, что первоначально сохраненная вами временная метка не будет точно соответствовать значению из getPurchaseTime()
объекта Purchase
, поэтому вам придется сравнить их приблизительно. Например, вы можете проверить, находятся ли значения в пределах определенного периода времени друг от друга.
Полезная нагрузка разработчика исторически использовалась для различных целей, включая предотвращение мошенничества и привязку покупок к нужному пользователю. В версии 2.2 и более поздних версиях библиотеки Google Play Billing Library предполагаемые варианты использования, которые раньше полагались на полезную нагрузку разработчика, теперь полностью поддерживаются в других частях библиотеки.
Благодаря этой поддержке мы упразднили полезную нагрузку для разработчиков, начиная с версии 2.2 Библиотеки выставления счетов Google Play. Методы, связанные с полезной нагрузкой разработчика, устарели в версии 2.2 и были удалены в версии 3.0. Обратите внимание, что ваше приложение может продолжать получать полезные данные разработчика для покупок, совершенных с использованием предыдущих версий библиотеки или AIDL.
Подробный список изменений можно найти в примечаниях к выпуску Google Play Billing Library 2.2 . и примечания к выпуску библиотеки Google Play Billing Library 3.0 .
Проверка покупки
Чтобы гарантировать, что покупки являются подлинными, а не подделанными или воспроизведенными, Google рекомендует использовать токен покупки (полученный из метода getPurchaseToken()
в объекте Purchase
) вместе с API-интерфейсами разработчика Google Play для проверки подлинности покупок. Дополнительную информацию см. в разделе Борьба с мошенничеством и злоупотреблениями .
Атрибуция покупки
Многим приложениям, особенно играм, необходимо гарантировать, что покупка правильно связана с игровым персонажем/аватаром или профилем пользователя в приложении, который инициировал покупку. Начиная с библиотеки Google Play Billing Library 2.2, ваше приложение может передавать в Google скрытые идентификаторы учетной записи и профиля при запуске диалогового окна покупки и возвращать их при получении покупки.
Используйте параметры setObfuscatedAccountId()
и setObfuscatedProfileId()
в BillingFlowParams
и получите их с помощью метода getAccountIdentifiers()
в объекте Purchase
.
Свяжите метаданные с покупкой
Google рекомендует хранить метаданные о покупке на защищенном внутреннем сервере, который вы поддерживаете. Эти метаданные покупки должны быть связаны с токеном покупки, полученным с помощью метода getPurchaseToken
в объекте Purchase
. Эти данные можно сохранить, передав токен покупки и метаданные на серверную часть при вызове PurchasesUpdatedListener
после успешной покупки.
Чтобы гарантировать связь метаданных в случае прерывания процесса покупки, Google рекомендует хранить метаданные на вашем внутреннем сервере перед запуском диалогового окна покупки и связывать их с идентификатором учетной записи вашего пользователя, приобретаемым SKU и текущей отметкой времени.
Если поток покупки прерывается до вызова PurchasesUpdatedListener
, ваше приложение обнаружит покупку, как только ваше приложение возобновит работу и вызовет BillingClient.queryPurchasesAsync()
. Затем вы можете отправить значения, полученные из методов getPurchaseTime()
, getSku()
и getPurchaseToken()
объекта Purchase
, на свой внутренний сервер для поиска метаданных, связывания метаданных с токеном покупки и продолжения обработки покупки. Обратите внимание, что первоначально сохраненная вами временная метка не будет точно соответствовать значению из getPurchaseTime()
объекта Purchase
, поэтому вам придется сравнить их приблизительно. Например, вы можете проверить, находятся ли значения в пределах определенного периода времени друг от друга.
Полезная нагрузка разработчика исторически использовалась для различных целей, включая предотвращение мошенничества и привязку покупок к нужному пользователю. В версии 2.2 и более поздних версиях библиотеки Google Play Billing Library предполагаемые варианты использования, которые раньше полагались на полезную нагрузку разработчика, теперь полностью поддерживаются в других частях библиотеки.
Благодаря этой поддержке мы упразднили полезную нагрузку для разработчиков, начиная с версии 2.2 Библиотеки выставления счетов Google Play. Методы, связанные с полезной нагрузкой разработчика, устарели в версии 2.2 и были удалены в версии 3.0. Обратите внимание, что ваше приложение может продолжать получать полезные данные разработчика для покупок, совершенных с использованием предыдущих версий библиотеки или AIDL.
Подробный список изменений можно найти в примечаниях к выпуску библиотеки Google Play Billing Library 2.2 . и примечания к выпуску библиотеки Google Play Billing Library 3.0 .
Проверка покупки
Чтобы гарантировать, что покупки являются подлинными, а не подделанными или воспроизведенными, Google рекомендует использовать токен покупки (полученный из метода getPurchaseToken()
в объекте Purchase
) вместе с API-интерфейсами разработчика Google Play для проверки подлинности покупок. Дополнительную информацию см. в разделе Борьба с мошенничеством и злоупотреблениями .
Атрибуция покупки
Многим приложениям, особенно играм, необходимо гарантировать, что покупка правильно связана с игровым персонажем/аватаром или профилем пользователя в приложении, который инициировал покупку. Начиная с библиотеки Google Play Billing Library 2.2, ваше приложение может передавать в Google скрытые идентификаторы учетной записи и профиля при запуске диалогового окна покупки и возвращать их при получении покупки.
Используйте параметры setObfuscatedAccountId()
и setObfuscatedProfileId()
в BillingFlowParams
и получите их с помощью метода getAccountIdentifiers()
в объекте Purchase
.
Свяжите метаданные с покупкой
Google рекомендует хранить метаданные о покупке на защищенном внутреннем сервере, который вы поддерживаете. Эти метаданные покупки должны быть связаны с токеном покупки, полученным с помощью метода getPurchaseToken
в объекте Purchase
. Эти данные можно сохранить, передав токен покупки и метаданные на серверную часть при вызове PurchasesUpdatedListener
после успешной покупки.
Чтобы гарантировать связь метаданных в случае прерывания процесса покупки, Google рекомендует хранить метаданные на вашем внутреннем сервере перед запуском диалогового окна покупки и связывать их с идентификатором учетной записи вашего пользователя, приобретаемым SKU и текущей отметкой времени.
Если поток покупки прерывается до вызова PurchasesUpdatedListener
, ваше приложение обнаружит покупку, как только ваше приложение возобновит работу и вызовет BillingClient.queryPurchasesAsync()
. Затем вы можете отправить значения, полученные из методов getPurchaseTime()
, getSku()
и getPurchaseToken()
объекта Purchase
, на свой внутренний сервер для поиска метаданных, связывания метаданных с токеном покупки и продолжения обработки покупки. Обратите внимание, что первоначально сохраненная вами временная метка не будет точно соответствовать значению из getPurchaseTime()
объекта Purchase
, поэтому вам придется сравнить их приблизительно. Например, вы можете проверить, находятся ли значения в пределах определенного периода времени друг от друга.