Включение покупок с Flow Builder в iOS SDK

Чтобы включить встроенные покупки, нужно разобраться в трёх ключевых концепциях:

  • Продукты – всё, что пользователи могут купить (подписки, расходуемые покупки, пожизненный доступ)
  • Флоу – последовательности экранов, которые показывают продукты пользователям, созданные в no-code Flow Builder. SDK получает их через getFlow. Если вы предпочитаете строить UI в собственном коде, используйте пейвол — см. Реализация пейволов вручную.
  • Плейсменты – где и когда в приложении показываются флоу (например, main, onboarding, settings). Вы привязываете флоу к плейсментам в дашборде, а затем запрашиваете их по ID плейсмента в коде. Это упрощает проведение A/B-тестов и показ разных флоу разным пользователям. Adapty предлагает три способа подключить покупки в вашем приложении. Выберите подходящий в зависимости от требований: | Реализация | Сложность | Когда использовать | |---|---|---| | Adapty Flow Builder | ✅ Легко | Вы создаёте полноценный флоу, готовый к покупкам, в no-code конструкторе. Adapty автоматически его отображает и берёт на себя весь процесс покупки, валидацию чеков и управление подписками. | | Пейволы, созданные вручную | 🟡 Средне | Вы реализуете UI пейвола в коде приложения, но всё равно получаете объект флоу от Adapty, сохраняя гибкость в управлении продуктами. См. гайд. | | Observer mode | 🔴 Сложно | У вас уже есть собственная инфраструктура обработки покупок, и вы хотите продолжать ею пользоваться. Обратите внимание, что observer mode имеет ряд ограничений в Adapty. См. статью. |

Шаги ниже показывают, как реализовать флоу, созданный в Adapty Flow Builder.

Если вы предпочитаете создавать UI пейвола самостоятельно, см. Реализация пейволов вручную.

Чтобы отобразить флоу, созданный в Adapty Flow Builder, в коде вашего приложения нужно всего лишь:

  1. Получить флоу: Запросить его из Adapty.
  2. Отобразить его — Adapty сам обработает покупки: Показать представление в вашем приложении.
  3. Обработать действия кнопок: Связать взаимодействия пользователя с реакцией приложения на них. Например, открывать ссылки или закрывать флоу при нажатии кнопок.

Перед началом работы

Выполните следующие подготовительные шаги:

  1. Подключите приложение к App Store в дашборде Adapty.
  2. Создайте продукты в Adapty.
  3. Создайте пейвол и добавьте продукты в него.
  4. Создайте плейсмент и добавьте в него пейвол.
  5. Установите и активируйте Adapty SDK в коде приложения.

Самый быстрый способ выполнить эти шаги — следовать quickstart-гайду или создать пейволы и плейсменты с помощью Developer CLI.

1. Получите флоу

Ваши флоу привязаны к плейсментам, настроенным в дашборде. Плейсменты позволяют показывать разные флоу разным аудиториям или запускать A/B-тесты.

Чтобы получить флоу, созданный в Adapty Flow Builder, нужно:

  1. Получить объект flow по ID плейсмента с помощью метода getFlow и проверить, есть ли в нём конфигурация представления.
  2. Получить конфигурацию представления с помощью метода getFlowConfiguration. Она содержит элементы UI и стили, необходимые для отображения флоу.

func loadFlow() async {
    let flow = try await Adapty.getFlow(placementId: "YOUR_PLACEMENT_ID")

    guard flow.hasViewConfiguration else {
        print("Flow doesn't have a view configuration")
        return
    }

    flowConfiguration = try await AdaptyUI.getFlowConfiguration(forFlow: flow)
}

2. Отображение флоу

Теперь, когда у вас есть конфигурация флоу, достаточно добавить несколько строк кода для его отображения.

Подробнее о том, как отобразить флоу, см. наш гайд.

3. Обработка действий кнопок

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

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

Например, вот как обрабатывать кнопку закрытия. В UIKit SDK автоматически закрывает контроллер, когда срабатывает .close — переопределяйте это только если нужно нестандартное поведение. В SwiftUI вам нужно самостоятельно установить привязку isPresented в false.

Читайте наши гайды о том, как обрабатывать действия кнопок и события.

Следующие шаги

Есть вопросы или возникли проблемы? Загляните на наш форум поддержки, где можно найти ответы на распространённые вопросы или задать свой. Наша команда и сообщество всегда готовы помочь!

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

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

Полный пример

Вот как все шаги из этого гайда можно объединить в вашем приложении.