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

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

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

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

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

try {
    await adapty.openWebPaywall(product);
} catch (error) {
    console.warn('Failed to open web paywall:', error);
}

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

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

Обработка ошибок

ОшибкаОписаниеРекомендуемое действие
AdaptyError.paywallWithoutPurchaseUrlУ пейвола не настроен URL для веб-покупкиПроверьте, правильно ли настроен пейвол в дашборде Adapty
AdaptyError.productWithoutPurchaseUrlУ продукта отсутствует URL для веб-покупкиПроверьте настройки продукта в дашборде Adapty
AdaptyError.failedOpeningWebPaywallUrlНе удалось открыть URL в браузереПроверьте настройки устройства или предоставьте альтернативный способ покупки
AdaptyError.failedDecodingWebPaywallUrlНе удалось корректно закодировать параметры в URLУбедитесь, что параметры URL валидны и правильно отформатированы

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

Открытие веб-пейволов во встроенном браузере поддерживается начиная с Adapty SDK v3.15.

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

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

Для этого передайте WebPresentation.BrowserInApp вторым аргументом в openWebPaywall:


try {
    await adapty.openWebPaywall(
        product,
        WebPresentation.BrowserInApp, // default – WebPresentation.BrowserOutApp
    );
} catch (error) {
    console.warn('Failed to open web paywall:', error);
}