Проверка статуса подписки в iOS SDK
С Adapty отслеживать статус подписки очень просто. Вам не нужно вручную прописывать идентификаторы продуктов в коде — достаточно проверить наличие активного уровня доступа, чтобы убедиться, что у пользователя есть подписка.
Перед тем как приступить к проверке статуса подписки, настройте App Store Server Notifications.
Уровень доступа и объект AdaptyProfile
Уровни доступа — это свойства объекта AdaptyProfile. Рекомендуем получать профиль при запуске приложения, например, когда вы идентифицируете пользователя, и обновлять его при каждом изменении. Так вы сможете использовать объект профиля, не запрашивая его повторно.
Чтобы получать уведомления об обновлениях профиля, подпишитесь на изменения профиля, как описано в разделе Подписка на обновления статуса подписки ниже.
Хотите увидеть реальный пример интеграции Adapty SDK в мобильное приложение? Посмотрите наши примеры приложений — они демонстрируют полную настройку: отображение пейволов, совершение покупок и другие базовые функции.
Получение уровня доступа с сервера
Чтобы получить уровень доступа с сервера, используйте метод .getProfile():
Параметры ответа:
| Параметр | Описание |
|---|---|
| Profile | Объект AdaptyProfile. Как правило, для определения наличия у пользователя премиум-доступа достаточно проверить статус уровня доступа профиля. Метод |
Метод .getProfile() возвращает профиль пользователя, из которого можно получить статус уровня доступа. В одном приложении может быть несколько уровней доступа. Например, если у вас новостное приложение с независимыми подписками на разные темы, вы можете создать уровни доступа «sports» и «science». Однако в большинстве случаев достаточно одного уровня доступа — тогда можно просто использовать уровень «premium» по умолчанию.
Пример проверки уровня доступа «premium» по умолчанию:
Подписка на обновления статуса подписки
Adapty генерирует событие каждый раз, когда подписка пользователя изменяется.
Чтобы получать сообщения от Adapty, необходимо выполнить дополнительную настройку:
Adapty.delegate = self
// To receive subscription updates, extend `AdaptyDelegate` with this method:
nonisolated func didLoadLatestProfile(_ profile: AdaptyProfile) {
// handle any changes to subscription state
}
Adapty также генерирует событие при запуске приложения. В этом случае передаётся кэшированный статус подписки.
Кэш статуса подписки
Кэш, реализованный в Adapty SDK, хранит статус подписки профиля. Это означает, что даже при недоступности сервера можно обратиться к кэшированным данным для получения информации о статусе подписки профиля.
При этом важно учитывать, что напрямую запрашивать данные из кэша невозможно. SDK периодически обращается к серверу каждую минуту, чтобы проверить наличие обновлений, связанных с профилем. При наличии изменений — например, новых транзакций или других обновлений — они передаются в кэш, чтобы синхронизировать его с сервером.