Реализация веб-пейволов в Kotlin Multiplatform SDK

Перед началом убедитесь, что вы настроили веб-пейвол в дашборде и установили Adapty SDK версии 3.15 или выше.

Открытие веб-пейволов

Если вы работаете с пейволом, разработанным самостоятельно, вам нужно обрабатывать веб-пейволы через метод SDK. Метод openWebPaywall:

  1. Генерирует уникальный URL, позволяющий Adapty связать конкретный показанный пользователю пейвол с веб-страницей, на которую тот перенаправляется.
  2. Отслеживает возврат пользователей в приложение и затем запрашивает getProfile через короткие интервалы, чтобы определить, обновились ли права доступа профиля.

Таким образом, если платёж прошёл успешно и права доступа обновились, подписка активируется в приложении почти мгновенно.

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


viewModelScope.launch {
    Adapty.openWebPaywall(product = product).onSuccess {
        // веб-пейвол успешно открыт
    }.onError { error ->
        // обработка ошибки
    }
}

Существует две версии метода openWebPaywall:

  1. openWebPaywall(product = product) — генерирует URL по пейволу и добавляет в URL данные о продукте.
  2. openWebPaywall(paywall = paywall) — генерирует URL по пейволу без добавления данных о продукте. Используйте его, когда продукты в пейволе Adapty отличаются от продуктов в веб-пейволе.

Открытие веб-пейволов во встроенном браузере

По умолчанию веб-пейволы открываются во внешнем браузере.

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

Чтобы включить это, установите параметр openIn в значение AdaptyWebPresentation.IN_APP_BROWSER:


viewModelScope.launch {
    Adapty.openWebPaywall(
        product = product,
        openIn = AdaptyWebPresentation.IN_APP_BROWSER // по умолчанию – EXTERNAL_BROWSER
    ).onSuccess {
        // веб-пейвол успешно открыт
    }.onError { error ->
        // обработка ошибки
    }
}