В документации клиента выставления счетов указано, что он проверяет пользователя.
Тогда возникает вопрос: Кто такой пользователь
Если вы посмотрите на шаги, предпринятые для API биллинга на https://developer.android.com/google/play/billing/billing_library_overview, то увидите, что необходимо подключение к Google Play.
То, что происходит тогда, это то, что текущий пользователь на Android, учетная запись, с которой он вошел в Google Play, и его мобильное устройство определено как пользователь.
Так что, если они купили его через приложение Google Play в приложении, оно всегда будет назначено этому пользователю в Google Play, и это то, что запрашивается этим. Независимо от того, на каком устройстве они вошли, планшет, смарт-часы, телефон, телевизор и т. Д. ...
Как получить список фактически купленных продуктов
Вместо того, чтобы использовать асинхронную передачу, которая дает вам все, в том числе брошенные корзины покупок, я предлагаю вам использовать https://developer.android.com/reference/com/android/billingclient/api/BillingClient#querypurchases
Таким образом можно получить информацию о покупках для всех предметов, фактически купленных и оплаченных в вашем приложении. Этот метод использует кэш приложения Google Play Store без инициирования сетевого запроса.
Примечание. Рекомендуется в целях безопасности совершать покупки.
подтверждение на вашем бэкэнде (если оно есть), позвонив
следующий API:
https://developers.google.com/android-publisher/api-ref/purchases/products/get
Если вы прочитаете эту ссылку API, легко проверить с помощью онлайн-кэша, была ли покупка действительной с помощью простого запроса GET.
Лично я бы встроил проверку, если телефон подозревается в качестве рута, прежде чем выполнять ручную проверку данных с помощью API покупок, который отправляет запрос в магазин.
Телефоны без рута имеют более высокий уровень доверия, так как пользователь, вероятно, не очень разбирается в технологиях и не будет иметь ни малейшего понятия о том, как обойти такие проверки, и кэш Google Play будет регулярно обновляться, отражая доверие данные.
Когда телефон подозревается в том, что он рутирован (вы можете читать защищенные каталоги или записывать в них), а затем выполнять онлайн-проверку, купили ли они вещи каждый раз, когда вы считаете это необходимым.