Недостаток надежности в приложении Billing v3

Во-первых, спасибо Google за новый IAB API, который, кажется, намного проще в использовании по сравнению с предыдущим. Также новый пример – отличное скачкообразное сравнение со старым, пока только один сбой в MainActivity.onDestroy() из-за отсутствия super.onDestroy() .

Однако я не совсем понимаю одно утверждение:

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

Следуя этому руководству, кажется, что приобретенный товар будет потерян, если приложение начнет действовать сразу после выполнения запроса на потребление. Предыдущая реализация обеспечивала периодическую передачу IN_APP_NOTIFY, пока покупка не будет подтверждена, но в новой реализации этого нет. Я не вижу способа, которым я мог бы надежно обеспечить элемент, кроме реализации собственного отслеживания потока покупок, который будет постоянно храниться и определенно усложнять код. Итак, новый подход выглядит как ошибка в реализации, или я что-то упускаю?

Кроме того, в моем случае подготовка (включая проверку) выполняется на стороне сервера. Я думаю, я должен игнорировать это цитируемое руководство и делать потребление до оговорки. При таком подходе мне не нужно беспокоиться о том, что товар будет потерян сразу после покупки. Если приложение выйдет из строя, элемент будет сохранен как «принадлежащий», пока я не буду выполнять подготовку на стороне сервера, а затем потребление. Было бы хорошо с точки зрения безопасности?

Согласен. Я бы обработал транзакцию на сервере (либо успешно, либо если она не прошла проверку неудачно), тогда я бы отметил ее как потребляемую.

Intereting Posts
Почему декодер MediaCodec не выводит унифицированный формат YUV (например, YUV420P)? Как приложение может получить доступ к файлам на USB OTG-хранилищах в Android 6.0 (API-уровень 23) без root? Программно определить, имеет ли приложение Android разрешение на системном уровне Почему мои намерения не доставлены правильно? Недостаточно памяти при распределении по 9830416 байт с растровым изображением Могу ли я заставить IntelliJ отлаживать приложения для Android через устройство вместо эмулятора? Анимировать прокрутку Как добавить фрагмент в программно сгенерированный макет? Каково местоположение базы данных по умолчанию для приложения Android для некорневого устройства? Это то же самое, что и для корней? Небольшой размер шрифта в эмуляторе Android ContentProvider insert () всегда работает в потоке пользовательского интерфейса? Кто-нибудь знает, как открыть документ MS-Word в андроиде? Android: Как конвертировать из SystemClock.elapsedRealTime в читаемый человеком CharSeq? Попытка иметь широковещательный приемник без фильтра Android AppCompat v21 предоставляет SwitchCompat не предоставляет SwitchCompatPerefrence