---
title: "Flutter SDKにウェブペイウォールを実装する"
description: "App Storeの手数料や審査なしで決済できるウェブペイウォールを設定します。"
---

:::important
始める前に、[ダッシュボードでウェブペイウォールを設定](web-paywall)し、Adapty SDK バージョン 3.6.1 以降をインストールしていることを確認してください。
:::

自分で作成したペイウォールを使用している場合は、SDKメソッドを使ってウェブペイウォールを処理する必要があります。`.openWebPaywall`メソッドは次の動作を行います。
1. Adaptyが特定のユーザーに表示されたペイウォールとリダイレクト先のウェブページを紐付けるための一意のURLを生成します。
2. ユーザーがアプリに戻ったタイミングを追跡し、短い間隔で`.getProfile`をリクエストして、プロファイルのアクセス権が更新されたかどうかを確認します。

これにより、決済が成功してアクセス権が更新された場合、サブスクリプションはほぼ即座にアプリ内で有効化されます。

```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
`openWebPaywall`メソッドには2つのバージョンがあります。
1. `openWebPaywall(product)` — ペイウォールによってURLを生成し、プロダクトデータもURLに追加します。
2. `openWebPaywall(paywall)` — プロダクトデータを追加せずにペイウォールによって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 以降でサポートされています。
:::

デフォルトでは、ウェブペイウォールは外部ブラウザで開きます。

シームレスなユーザー体験を提供するために、アプリ内ブラウザでウェブペイウォールを開くことができます。これにより、ウェブ購入ページがアプリ内に表示され、ユーザーはアプリを切り替えることなく取引を完了できます。

これを有効にするには、`in`パラメータを`.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
}

```