Проверьте покупки в приложении, когда устройство не подключено - PullRequest
0 голосов
/ 20 января 2019

У меня есть Android-приложение, в котором пользователи могут приобрести одну покупку в приложении.

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

Вот документ от Google:

Вызовите queryPurchases () как минимум дважды в вашем коде:

  • Каждый раз, когда ваше приложение запускается такчто вы можете восстановить любые покупки, сделанные пользователем с момента последней остановки приложения.

  • В вашем методе onResume (), поскольку пользователь может совершить покупку, когда ваше приложение находится в фоновом режиме (например, обмен промо-кода в приложении Play Store).

Локальный сервис Google Play кэширует покупки пользователя, поэтому функция работает даже в автономном режиме.

Я сделал это, и он отлично работает.

Однако, если я очищаю кэш приложения Google Play или жду 8-12 часов в автономном режиме, метод queryPurchases() возвращает ошибку (Метод не может получить покупки, потому что лСрок действия кэша Google Play истек).Если я снова подключу устройство к сети, у меня все снова будет работать.

Теперь, ища решение в сети, кажется, не рекомендуется хранить локальные покупки inapp во внутренней памяти приложения, чтобы справиться с этой проблемой.

Мое приложение предназначено для использования в автономном режиме, но мне не нравится идея вернуть его в бесплатную версию, если queryPurchases() не удастся (это будет очень раздражающим с точки зрения пользователя).Также мне не нравится идея «дать преимущество сомнения» и начинать в платной версии, если queryPurchases() не срабатывает (пользователи могут начать использовать это поведение).

В настоящее время приложение просто показывает всплывающее окносообщение об ошибке с просьбой подключить устройство к интернету.Пользователи, которые сталкиваются с этой проблемой (их кэш Google Play становится недействительным, когда их устройство находится в автономном режиме), жалуются, что приложение не является действительно автономным приложением, потому что они видят всплывающее сообщение с просьбой подключиться к Интернету, и они правы.

Что мне делать?

1 Ответ

0 голосов
/ 20 января 2019

Кэшируйте результат запроса на покупку самостоятельно. Затем вернитесь к этому результату в автономном режиме. Тогда ваш единственный случай отказа - если кто-то что-то покупает, то быстро выходит из строя, что является реальным угловым случаем (и в этом случае ему необходимо подключиться).

...