---
title: "Реализация веб-пейволов"
description: "Узнайте, как реализовать веб-пейволы в вашем Capacitor-приложении с помощью Adapty SDK."
---

:::important
Прежде чем начать, убедитесь, что вы [настроили веб-пейвол в дашборде](web-paywall) и установили Adapty SDK версии 3.6.1 или выше.
:::

## Открытие веб-пейволов \{#open-web-paywalls\}

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

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

```typescript showLineNumbers

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

:::note
Существует две версии метода `openWebPaywall`:
1. `openWebPaywall({ paywallOrProduct: product })` — генерирует URL по пейволу и добавляет данные о продукте в URL.
2. `openWebPaywall({ paywallOrProduct: paywall })` — генерирует URL по пейволу без добавления данных о продукте в URL. Используйте этот вариант, если продукты в пейволе Adapty отличаются от продуктов на веб-пейволе.
:::

#### Обработка ошибок \{#handle-errors\}

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

## Открытие веб-пейволов во встроенном браузере \{#open-web-paywalls-in-an-in-app-browser\}

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

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

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

Чтобы включить эту функцию, установите `openIn` в `WebPresentation.BrowserInApp` в вызове `openWebPaywall`:

```typescript showLineNumbers

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