---
title: "Implémenter des paywalls web dans le SDK Flutter"
description: "Configurez un paywall web pour accepter des paiements sans les frais et audits de l'App Store."
---

:::important
Avant de commencer, assurez-vous d'avoir [configuré votre paywall web dans le tableau de bord](web-paywall) et d'avoir installé la version 3.6.1 ou ultérieure du SDK Adapty.
:::

Si vous travaillez avec un paywall que vous avez développé vous-même, vous devez gérer les paywalls web via la méthode du SDK. La méthode `.openWebPaywall` :
1. Génère une URL unique permettant à Adapty d'associer un paywall spécifique affiché à un utilisateur particulier à la page web vers laquelle il est redirigé.
2. Détecte quand vos utilisateurs reviennent dans l'application, puis appelle `.getProfile` à intervalles courts pour déterminer si les droits d'accès du profil ont été mis à jour.

Ainsi, si le paiement a réussi et que les droits d'accès ont été mis à jour, l'abonnement s'active dans l'application presque immédiatement.

```dart showLineNumbers title="Flutter"
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
}
```

:::note
Il existe deux versions de la méthode `openWebPaywall` :
1. `openWebPaywall(product)` qui génère des URLs à partir du paywall et y ajoute également les données du produit.
2. `openWebPaywall(paywall)` qui génère des URLs à partir du paywall sans y ajouter les données du produit. Utilisez-la lorsque vos produits dans le paywall Adapty diffèrent de ceux du paywall web.

Dans le SDK v4, le paramètre `paywall` prend un `AdaptyFlowPaywall` — une variante de paywall du flow récupéré. Vérifiez que `flow.paywalls` n'est pas vide avant d'y accéder par index, par exemple `flow.paywalls[0]`.
:::

#### Gérer les erreurs \{#handle-errors\}

| Erreur                                  | Description                                                   | Action recommandée                                                                    |
|-----------------------------------------|---------------------------------------------------------------|---------------------------------------------------------------------------------------|
| AdaptyError.paywallWithoutPurchaseUrl   | Le paywall n'a pas d'URL d'achat web configurée               | Vérifiez que le paywall a bien été configuré dans l'Adapty Dashboard                  |
| AdaptyError.productWithoutPurchaseUrl   | Le produit n'a pas d'URL d'achat web                          | Vérifiez la configuration du produit dans l'Adapty Dashboard                         |
| AdaptyError.failedOpeningWebPaywallUrl  | Impossible d'ouvrir l'URL dans le navigateur                  | Vérifiez les paramètres de l'appareil ou proposez une autre méthode d'achat           |
| AdaptyError.failedDecodingWebPaywallUrl | Impossible d'encoder correctement les paramètres dans l'URL   | Vérifiez que les paramètres d'URL sont valides et correctement formatés               |

## Ouvrir les paywalls web dans un navigateur intégré \{#open-web-paywalls-in-an-in-app-browser\}

:::important
L'ouverture des paywalls web dans un navigateur intégré est prise en charge à partir du SDK Adapty v3.15.
:::

Par défaut, les paywalls web s'ouvrent dans le navigateur externe.

Pour offrir une expérience utilisateur fluide, vous pouvez ouvrir les paywalls web dans un navigateur intégré. Cela affiche la page d'achat web directement dans votre application, permettant aux utilisateurs de finaliser leurs transactions sans changer d'application.

Pour activer cette option, définissez le paramètre `in` sur `.inAppBrowser` :

```dart showLineNumbers
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
}

```