---
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 по пейволу без добавления данных о продукте. Используйте его, если продукты в пейволе 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.
:::

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

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

Чтобы включить эту возможность, передайте `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);
}

```