При продаже цифровых товаров через приложение необходимо учитывать все аспекты взаимодействия с пользователем. Интеграция в приложении позволяет запускать процессы покупки и управлять пользовательским интерфейсом, но важно, чтобы на вашем сервере всегда была актуальная информация о правах, которые приобретают пользователи. Это важно для отслеживания покупок и управления другими аспектами пользовательского опыта, например правами на контент на разных платформах.
Чтобы отслеживать события жизненного цикла покупки и быстро реагировать на изменения прав пользователей, создайте в своем бэкенде систему управления статусом покупки как для подписок, так и для разовых покупок. Эта система обеспечивает быструю и безопасную обработку покупок независимо от статуса устройства, поддерживает согласованность прав пользователей на всех платформах и позволяет просматривать историю покупок и данные о правах в вашей внутренней системе.
Google Play предлагает уведомления для разработчиков в режиме реального времени (RTDN), чтобы отслеживать события жизненного цикла покупок, а Play Developer API для подписок и покупок в приложении можно использовать для выполнения необходимых действий на основе этих событий. Используя эти инструменты и создав надежную систему управления жизненным циклом покупок, вы сможете обеспечить удобство для пользователей и эффективно управлять покупками и правами.
Как создать клиент для уведомлений для разработчиков в режиме реального времени
Покупки, совершенные через платежную систему Google Play, могут несколько раз менять свой статус. Эти изменения могут быть вызваны разными действиями, в том числе:
- Действия, инициированные пользователями в вашем приложении.
- Действия, инициированные пользователями в приложении Google Play.
- Действия, инициированные непосредственно из ваших внутренних систем.
- Действия, которые вы выполняете в Google Play Console.
Пример:
- Пользователь отменяет подписку в центре подписок Google Play.
- Разработчик откладывает оплату подписки с помощью Google Play Developer API.
- Разработчик оформляет возврат средств и отзывает право на покупку через Google Play Console.
Важно, чтобы ваша серверная часть была осведомлена о различных состояниях, которые может проходить покупка, и своевременно принимала все необходимые меры для корректировки прав.
Вы можете вручную проверять статус покупки с помощью Google Play Developer API, но периодические проверки – это неэффективный способ отслеживать изменения, который может приводить к ошибкам и задержкам. Уведомления в реальном времени позволяют реагировать на изменения сразу, не создавая логику отслеживания жизненного цикла покупок в Google Play.
В этом разделе рассказывается, как создать клиент для RTDN. RTDN – это функция, созданная на основе Google Cloud Pub/Sub, которая отправляет на ваш сервер мгновенное уведомление об изменении статуса прав пользователя. Система издатель-подписчик состоит из издателя, который отправляет уведомления, и клиента, который на них подписан. Благодаря уведомлениям для разработчиков в реальном времени вы можете отслеживать все изменения статуса разрешений пользователя и оперативно реагировать на них.
Издатель уведомлений для разработчиков в режиме реального времени
Внутренняя система Google Play выступает в качестве издателя для уведомлений в реальном времени. Чтобы настроить RTDN для своего приложения, следуйте инструкциям в руководстве по настройке. Эти действия позволяют платежной системе Google Play выступать в качестве издателя для уведомлений о транзакциях в реальном времени вашего приложения. Чтобы выполнить настройку, вам нужно ознакомиться с Google Cloud Platform Console и настроить базовую конфигурацию Pub/Sub.
Подписчик RTDN
После настройки издателя подготовьте серверную часть к получению уведомлений RTDN. Для этого вам нужно создать клиент, который будет получать сообщения Google Cloud Pub/Sub. Основная функция клиента RTDN – получать экземпляры PubSubMessage с помощью HTTPS-запросов в зарегистрированной конечной точке или с использованием клиентских библиотек Cloud Pub/Sub. Чтобы узнать, как использовать стратегию push или pull, ознакомьтесь с документацией по издателю-подписчику. Чтобы получить рекомендации по выбору стратегии, которая лучше всего подходит для ваших потребностей, ознакомьтесь с документацией по настройке RTDN.
Для каждого полученного сообщения серверная часть должна выполнять следующие действия:
- Распакуйте поле
data, закодированное по стандарту Base64, которое содержит объект RTDN. - Проверьте уникальность поля
messageIdи убедитесь, что дублирующиеся уведомления не обрабатываются. Это позволяет избежать избыточной обработки и не исчерпать квоту API. - Запустите все необходимые серверные процессы, связанные с изменением прав, о котором сообщается в событии RTDN.
Как обрабатывать переходы между состояниями покупки
У разовых покупок и подписок разные жизненные циклы, поскольку на них влияют разные события и состояния. Благодаря RTDN вам не нужно создавать логику для подтверждения переходов между состояниями. Вам нужно только определить, что будет происходить, когда ваша серверная часть получит уведомление определенного типа.
Чтобы узнать больше, изучите следующие руководства: