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

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

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

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

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

try {
  await Adapty().openWebPaywall(product: <YOUR_PRODUCT>);
  // The web paywall will be opened
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
  // handle other errors
}

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

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

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

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

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

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

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

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

Чтобы включить эту функцию, задайте параметру in значение .inAppBrowser:

try {
  await Adapty().openWebPaywall(
    product: <YOUR_PRODUCT>,
    openIn: AdaptyWebPresentation.inAppBrowser,
  );
  // The web paywall will be opened in the in-app browser
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
  // handle other errors
}