Я использую версию 3 API для выставления счетов в приложении. У меня есть один, управляемый, непотребимый элемент. Я еще не опубликовал эту функцию в своем приложении, поэтому я хочу принять решение о содержании полезной информации о покупке до того, как будут сделаны какие-либо покупки.
Из "Рекомендации по безопасности" :
Задайте строку полезной нагрузки разработчика при совершении запросов на покупку
С API-интерфейсом для биллинга версии приложения 3 можно добавить разработчика при загрузке запроса на поставку в Google Играть. Как правило, это используется для передачи в токенах строк, которые однозначно идентифицирует этот запрос на покупку. Если вы укажете строковое значение, Google Play возвращает эту строку вместе с ответом на покупку. Впоследствии, когда вы делаете запросы об этой покупке, Google Play возвращает эту строку вместе с деталями покупки.
Вы должны передать строковый токен, который поможет вашему приложению определить пользователя, совершившего покупку, чтобы впоследствии проверить что это законная покупка этого пользователя. Для расходных материалов, вы можете использовать произвольно сгенерированную строку, но для предметов, не потребляемых вы должны использовать строку, которая однозначно идентифицирует пользователя.
Когда вы вернетесь в ответ от Google Play, убедитесь, что вы подтвердили что строка полезной нагрузки разработчика соответствует маркеру, который вы отправили ранее с запросом на покупку. В качестве дополнительной безопасности предосторожности, вы должны выполнить проверку самостоятельно сервер.
Правильно или неправильно, я решил не принимать "дополнительную меру безопасности" для настройки сервера для проверки покупки. И я не храню свою собственную запись о покупке - я всегда называю API биллинга. Так действительно ли есть какая-то причина для моей проверки данных? Сам API проверки проверяет подлинность пользователя перед сообщением купленного предмета, а если злоумышленник скомпрометировал устройство (приложение или API игры google), я не вижу никакой пользы от дополнительной проверки на пользователь идентифицирует устройство, где его можно легко обойти. Или есть причина для этого, о чем я не думаю?