Жизненный цикл покупки и RTDN

При продаже цифровых продуктов через приложение необходимо учитывать весь пользовательский опыт. Интеграция внутри приложения позволяет запускать процессы покупки и управлять пользовательским интерфейсом, но крайне важно поддерживать актуальность информации о приобретаемых пользователями правах доступа в бэкэнде. Это важно для отслеживания покупок и управления другими аспектами пользовательского опыта, такими как права доступа к различным платформам.

Для отслеживания событий жизненного цикла покупок и быстрого реагирования на изменения прав пользователей следует создать в бэкэнде систему управления статусом покупок как для подписок, так и для разовых покупок. Эта система обеспечивает быструю и безопасную обработку покупок независимо от состояния устройства, поддерживает согласованные права пользователей на всех платформах и предоставляет возможность просмотра истории покупок и данных о правах в бэкэнде.

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

Создайте клиент для уведомлений разработчиков в режиме реального времени.

Покупки, совершенные в платежной системе Google Play, могут претерпевать несколько изменений в течение своего жизненного цикла. Эти изменения могут быть вызваны различными действиями, в том числе следующими:

  • Действия, инициированные пользователями в вашем приложении.
  • Действия, инициированные пользователями через приложение Play Store.
  • Действия, инициируемые непосредственно из ваших внутренних систем.
  • Действия, которые вы инициируете через консоль Google Play.

Например:

  • Пользователь отменяет подписку через центр подписки Play Store.
  • Разработчик откладывает выставление счетов за подписку, используя API разработчиков Google Play.
  • Разработчик оформляет возврат средств и аннулирует право на покупку через консоль Google Play.

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

Хотя с помощью API разработчиков Google Play можно вручную проверять статус покупки, полагаться на периодические проверки — очень неэффективный способ отслеживания изменений, подверженный ошибкам и задержкам. RTDN (Registered Transport Node) могут помочь вам реагировать на изменения немедленно, без необходимости создавать логику отслеживания жизненного цикла для ваших покупок в Google Play.

В этом разделе рассматривается создание клиента для RTDN. RTDN — это функция, реализованная с использованием Google Cloud Pub/Sub, которая отправляет вашему бэкэнду мгновенное уведомление при изменении состояния прав доступа пользователя. Система Pub/Sub состоит из издателя, отправляющего уведомления, и клиента, подписывающегося на эти уведомления. Внедрение RTDN позволяет отслеживать все изменения состояния прав доступа пользователя в режиме реального времени и оперативно реагировать на них.

Издатель RTDN

Бэкенд Google Play выступает в роли издателя для RTDN. Чтобы настроить RTDN для вашего приложения, следуйте инструкциям в руководстве по настройке . Эти шаги позволят платежной системе Google Play выступать в качестве издателя для RTDN вашего приложения. Для завершения этой настройки вам следует ознакомиться с консолью Google Cloud Platform, чтобы настроить базовую конфигурацию Pub/Sub.

Абонент RTDN

После настройки издателя необходимо подготовить бэкэнд для приема RTDN-сообщений. Для этого нужно создать клиент для приема сообщений Google Cloud Pub/Sub. Основная функция вашего RTDN-клиента заключается в получении экземпляров PubSubMessage либо через HTTPS-запросы в зарегистрированной конечной точке, либо с помощью клиентских библиотек Cloud Pub/Sub . См. документацию Pub/Sub, чтобы узнать об использовании стратегии push или pull , или документацию по настройке RTDN для получения рекомендаций по выбору стратегии, наиболее подходящей для ваших нужд.

Для каждого полученного сообщения ваша серверная часть должна выполнить следующие действия:

  • Распакуйте поле data , закодированное в формате Base64, которое содержит объект RTDN .
  • Проверьте уникальность поля messageId и убедитесь, что повторяющиеся уведомления не обрабатываются. Это предотвратит избыточную обработку и гарантирует, что вы не исчерпаете квоту API.
  • Запустите все необходимые внутренние процессы, связанные с изменением прав доступа, о котором сообщается в событии RTDN.

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

Разовые покупки и подписки имеют разные жизненные циклы в зависимости от различных состояний и событий, которые могут на них влиять. Благодаря RTDN вам не нужно разрабатывать логику для подтверждения переходов состояний. Все, что вам нужно сделать, это определить, что происходит, когда ваш бэкэнд получает каждый тип уведомления.

Для получения более подробной информации об этих сценариях ознакомьтесь со следующими руководствами: