Синхронизация покупок между вебом и мобильным приложением

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

В этом гайде вы узнаете, как это сделать с помощью Adapty API и SDK.

Пример сценария

Допустим, в вашем приложении пользователи могут зарегистрироваться по бесплатному плану как с мобильного устройства, так и через веб. Вы разрешаете им перейти на Premium-план на вашем сайте через Stripe или Chargebee. Как только пользователь оформляет подписку через веб, вы хотите, чтобы он сразу получил Premium-доступ в мобильном приложении — без ожидания или повторного входа.

Именно это и помогает автоматизировать Adapty.

Шаг 1. Идентификация пользователей

Adapty использует customer_user_id для идентификации пользователей на разных платформах.

Создайте этот ID один раз и передавайте его как в мобильный SDK, так и в веб-бэкенд.

Регистрация через веб

Когда пользователи регистрируются на вашем сайте, нужно создать для них профиль в Adapty через серверный API.

Описание метода — здесь.

curl --request POST \
  --url https://api.adapty.io/api/v2/server-side-api/profile/ \
  --header 'Accept: application/json' \
  --header 'Authorization: Api-Key YOUR_SECRET_API_KEY' \
  --header 'Content-Type: application/json' \
  --header 'adapty-customer-user-id: YOUR_CUSTOMER_USER_ID'

Регистрация из приложения

Когда пользователи впервые регистрируются через приложение, вы можете передать их customer user ID при активации SDK, или, если SDK был активирован до этапа регистрации, использовать метод identify — он создаст новый профиль и присвоит ему customer user ID.

Если вы идентифицируете новых пользователей уже после активации SDK, то сначала SDK создаст анонимный профиль, поскольку не может работать совсем без профиля. Затем, когда вы идентифицируете пользователя и присвоите ему новый customer user ID, будет создан новый профиль.

Это абсолютно нормальное поведение, которое не влияет на точность аналитики. Подробнее — здесь.

Шаг 2. Проверка статуса подписки через API

Когда пользователь входит на ваш сайт, получите его профиль Adapty через API.

Если у пользователя нет активной подписки, вы можете показать пейвол.

Описание метода — здесь.

curl --request GET \
  --url https://api.adapty.io/api/v2/server-side-api/profile/ \
  --header 'Accept: application/json' \
  --header 'Authorization: Api-Key YOUR_SECRET_API_KEY' \
  --header 'adapty-customer-user-id: YOUR_USER_ID' \

Шаг 3. Отображение пейвола на сайте

На сайте показывайте пейвол пользователям бесплатного плана. Вы можете использовать любой платёжный провайдер (Stripe, Chargebee, LemonSqueezy и др.).

Шаг 4. Обновление статуса подписки в Adapty

После завершения оплаты на сайте вызовите Adapty API, чтобы обновить уровень доступа пользователя в соответствии с купленным продуктом.

Описание метода — здесь.

curl --request POST \
  --url https://api.adapty.io/api/v2/server-side-api/purchase/profile/grant/access-level/ \
  --header 'Accept: application/json' \
  --header 'Authorization: Api-Key YOUR_SECRET_API_KEY' \
  --header 'Content-Type: application/json' \
  --header 'adapty-customer-user-id: YOUR_USER_ID' \
  --data '{
  "access_level_id": "YOUR_ACCESS_LEVEL"
}'

Шаг 5. Синхронизация статуса в приложении

Когда пользователь открывает мобильное приложение, получите обновлённый профиль и разблокируйте платные функции.

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

Ниже показано, как получить профиль и проверить его статус. Подробнее — здесь.