Проверка статуса подписки в Kotlin Multiplatform SDK
Adapty упрощает отслеживание статуса подписки. Вам не нужно вручную прописывать ID продуктов в коде — достаточно проверить наличие активного уровня доступа, чтобы убедиться, что у пользователя есть подписка.
Прежде чем приступить к проверке статуса подписки, настройте Real-time Developer Notifications (RTDN).
Уровень доступа и объект AdaptyProfile
Уровни доступа — это свойства объекта AdaptyProfile. Рекомендуем получать профиль при запуске приложения, например когда вы идентифицируете пользователя, и обновлять его при каждом изменении. Так вы сможете использовать объект профиля без повторных запросов.
Чтобы получать уведомления об обновлениях профиля, подпишитесь на изменения профиля, как описано в разделе Подписка на обновления профиля, включая уровни доступа ниже.
Хотите увидеть реальный пример интеграции Adapty SDK в мобильное приложение? Посмотрите наши примеры приложений — они демонстрируют полную настройку: отображение пейволов, совершение покупок и другие базовые функции.
Получение уровня доступа с сервера
Чтобы получить уровень доступа с сервера, используйте метод .getProfile():
Adapty.getProfile().onSuccess { profile ->
// check the access
}.onError { error ->
// handle the error
}
Параметры ответа:
| Параметр | Описание |
|---|---|
| Profile | Объект AdaptyProfile. Как правило, достаточно проверить статус уровня доступа профиля, чтобы определить, есть ли у пользователя премиум-доступ к приложению. Метод |
Метод .getProfile() возвращает профиль пользователя, из которого можно получить статус уровня доступа. В одном приложении может быть несколько уровней доступа. Например, в приложении-газете с независимыми подписками на разные рубрики можно создать уровни доступа «sports» и «science». Однако в большинстве случаев достаточно одного уровня доступа — тогда можно просто использовать стандартный уровень «premium».
Вот пример проверки стандартного уровня доступа «premium»:
Adapty.getProfile().onSuccess { profile ->
if (profile.accessLevels["premium"]?.isActive == true) {
// grant access to premium features
}
}.onError { error ->
// handle the error
}
Подписка на обновления статуса подписки
При каждом изменении подписки пользователя Adapty генерирует событие.
Чтобы получать сообщения от Adapty, необходима дополнительная настройка:
Adapty.setOnProfileUpdatedListener { profile ->
// handle any changes to subscription state
}
Adapty также генерирует событие при запуске приложения. В этом случае передаётся кэшированный статус подписки.
Кэш статуса подписки
Кэш, реализованный в Adapty SDK, хранит статус подписки профиля. Это означает, что даже при недоступности сервера кэшированные данные позволяют получить информацию о статусе подписки профиля.
Следует учитывать, что напрямую запрашивать данные из кэша невозможно. SDK периодически опрашивает сервер каждую минуту, проверяя наличие обновлений или изменений в профиле. При обнаружении изменений — например, новых транзакций или других обновлений — они отправляются в кэшированные данные для синхронизации с сервером.