Реагируйте на результаты покупки
Когда покупка завершается, Adapty SDK передаёт результат вашему приложению. Экран не изменится, пока приложение не отреагирует. Вы можете закрыть пейвол, оставить его открытым для повторной попытки или открыть второй флоу, подтверждающий покупку.
Билдер не может разветвляться по результату покупки: ни один триггер не срабатывает по завершении покупки, и ни одна переменная не хранит её результат. Поэтому переход нужно реализовать в коде приложения, где и приходит результат.
Работа делится на три части:
- Собрать флоу после покупки и назначить его на отдельный плейсмент.
- В коде приложения разветвиться по результату покупки.
- При успехе закрыть пейвол и показать флоу после покупки.
Прежде чем начать
- Флоу требуют Adapty SDK версии 4.0 или выше.
- Создайте пейвол — например, следуйте рецепту Создание базового экрана пейвола.
1. Создайте пост-покупочный флоу
Создайте флоу. Он запускается после покупки, поэтому продукты ему не нужны. Чтобы вернуть пользователя в собственный интерфейс приложения, добавьте кнопку с действием Close Flow на финальный экран.
Используйте Custom Action, если у флоу больше одного варианта выхода. Создайте несколько кнопок, каждой из которых задайте свой action ID — так приложение сможет отличить Set up now от Set up later.
2. Добавьте флоу после покупки в отдельный плейсмент
Чтобы загружать флоу после покупки в приложении, назначьте его в отдельный плейсмент. Плейсмент вашего пейвола не подойдёт — один плейсмент обслуживает только один флоу на аудиторию.
- Опубликуйте флоу.
- Создайте плейсмент для флоу. Запишите Placement ID — приложение использует его для загрузки флоу.
- Назначьте флоу после покупки в новый плейсмент.
3. Ветвление по результату покупки
Ваше приложение получает результат покупки через два колбэка:
- Completion: Покупка завершена — успешно, пользователь отменил её или платёж ожидает подтверждения (например, от родителя). Проверьте тип результата, чтобы различить эти три случая. При успехе результат содержит обновлённый
AdaptyProfile. - Failure: Ошибка прервала покупку, и колбэк содержит
AdaptyError— ограничения платежей, неверные продукты, сетевые сбои или ошибки верификации транзакции.
Имена и сигнатуры коллбэков: iOS | Android | React Native | Flutter | Unity | Kotlin Multiplatform | Capacitor
Обработайте результат в зависимости от исхода:
- При успешной покупке — закройте пейвол и запустите флоу после покупки.
- При отмене, ожидающем платеже или ошибке — оставьте пейвол открытым.
Восстановления отрабатываются через отдельный колбэк, который охватывает пользователей, переустанавливающих приложение или сменивших устройство. Убедитесь, что в возвращённом профиле активен нужный уровень доступа, затем закройте текущий экран и откройте флоу обычным способом. Направьте этот колбэк на отдельный флоу — экран с благодарностью за покупку здесь не подойдёт.
4. Загрузите и отобразите флоу после покупки
Чтобы открыть флоу после покупки без задержки, загружайте его вместе с пейволом, а не внутри обработчика. SDK заранее скачивает и кеширует изображения.
Чтобы прогреть кеш для нескольких плейсментов за один вызов, используйте preloadFlows (SDK 4.1+).
Получить флоу и пейволы: iOS | Android | React Native | Flutter | Unity | Kotlin Multiplatform | Capacitor
Отобразить флоу и пейволы: iOS | Android | React Native | Flutter | Unity | Kotlin Multiplatform | Capacitor