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

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

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

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

Допустим, в вашем приложении пользователи могут зарегистрироваться по freemium-плану как на мобильном устройстве, так и в вебе. Вы разрешаете им перейти на 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

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

Справочник по методу — здесь.

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. Синхронизация статуса в приложении

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

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

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