Проверка статуса подписки в Flutter SDK
Adapty упрощает отслеживание статуса подписки. Вам не нужно вручную прописывать ID продуктов в коде — достаточно проверить наличие активного уровня доступа, чтобы убедиться, что у пользователя есть подписка.
Перед проверкой статуса подписки (нажмите, чтобы развернуть)
- Для iOS настройте App Store Server Notifications
- Для Android настройте Real-time Developer Notifications (RTDN)
Уровни доступа и объект AdaptyProfile
Уровни доступа — это свойства объекта AdaptyProfile. Рекомендуем получать профиль при запуске приложения, например когда вы идентифицируете пользователя, и обновлять его при каждом изменении. Так вы сможете работать с объектом профиля без лишних запросов.
Чтобы получать уведомления об обновлениях профиля, подпишитесь на изменения, как описано в разделе Отслеживание обновлений профиля, включая уровни доступа ниже.
Хотите увидеть реальный пример интеграции Adapty SDK в мобильное приложение? Посмотрите наши примеры приложений — они демонстрируют полную настройку: отображение пейволов, совершение покупок и другие базовые функции.
Получение уровня доступа с сервера
Чтобы получить уровень доступа с сервера, используйте метод .getProfile():
try {
final profile = await Adapty().getProfile();
// check the access
} on AdaptyError catch (adaptyError) {
// handle the error
} catch (e) {
}
Параметры ответа:
| Параметр | Описание |
|---|---|
| Profile | Объект AdaptyProfile. Как правило, достаточно проверить статус уровня доступа профиля, чтобы определить, есть ли у пользователя доступ к премиум-функциям. Метод |
Метод .getProfile() возвращает профиль пользователя, из которого можно получить статус уровня доступа. В одном приложении может быть несколько уровней доступа. Например, в новостном приложении с независимыми подписками на разные рубрики можно создать уровни доступа «sports» и «science». Однако в большинстве случаев достаточно одного уровня доступа — стандартного «premium».
Пример проверки стандартного уровня доступа «premium»:
try {
final profile = await Adapty().getProfile();
if (profile?.accessLevels['premium']?.isActive ?? false) {
// grant access to premium features
}
} on AdaptyError catch (adaptyError) {
// handle the error
} catch (e) {
}
Отслеживание обновлений статуса подписки
Adapty отправляет событие каждый раз, когда подписка пользователя изменяется.
Чтобы получать сообщения от Adapty, выполните дополнительную настройку:
Adapty().didUpdateProfileStream.listen((profile) {
// handle any changes to subscription state
});
Adapty также отправляет событие при запуске приложения — в этом случае передаётся кэшированный статус подписки.
Кэш статуса подписки
Кэш, реализованный в Adapty SDK, хранит статус подписки профиля. Это означает, что даже при недоступности сервера кэшированные данные позволяют получить информацию о статусе подписки профиля.
Важно учитывать, что прямые запросы данных из кэша невозможны. SDK периодически обращается к серверу каждую минуту, чтобы проверить наличие обновлений профиля. Если обнаруживаются изменения — новые транзакции или другие обновления — они записываются в кэш, чтобы он оставался синхронизированным с сервером.