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

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

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

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

```typescript showLineNumbers title="React Native (TSX)"

try {
    await adapty.openWebPaywall(product);
} catch (error) {
    console.warn('Failed to open web paywall:', error);
}
```
:::note
Существует две версии метода `openWebPaywall`:
1. `openWebPaywall(product)` — генерирует URL по пейволу и добавляет данные продукта в URL.
2. `openWebPaywall(paywall)` — генерирует URL по пейволу без добавления данных продукта в URL. Используйте её, когда продукты в пейволе Adapty отличаются от продуктов в веб-пейволе.
:::

#### Обработка ошибок \{#handle-errors\}
| Ошибка                                  | Описание                                                          | Рекомендуемое действие                                                                  |
|-----------------------------------------|-------------------------------------------------------------------|-----------------------------------------------------------------------------------------|
| AdaptyError.paywallWithoutPurchaseUrl   | У пейвола не настроен URL для веб-покупки                         | Проверьте, правильно ли настроен пейвол в дашборде Adapty                               |
| AdaptyError.productWithoutPurchaseUrl   | У продукта отсутствует URL для веб-покупки                        | Проверьте настройки продукта в дашборде Adapty                                          |
| AdaptyError.failedOpeningWebPaywallUrl  | Не удалось открыть URL в браузере                                 | Проверьте настройки устройства или предоставьте альтернативный способ покупки           |
| AdaptyError.failedDecodingWebPaywallUrl | Не удалось корректно закодировать параметры в URL                 | Убедитесь, что параметры URL валидны и правильно отформатированы                        |
## Открытие веб-пейволов во встроенном браузере \{#open-web-paywalls-in-an-in-app-browser\}

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

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

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

Для этого передайте `WebPresentation.BrowserInApp` вторым аргументом в `openWebPaywall`:
```typescript showLineNumbers title="React Native (TSX)"

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

```