---
title: "Flutter SDKでウェブペイウォールを実装する"
description: "App Storeの手数料や審査なしに支払いを受け取るためのウェブペイウォールを設定します。"
---

:::important
始める前に、[ダッシュボードでウェブペイウォールを設定済み](web-paywall)であること、およびAdapty SDK バージョン3.6.1以降がインストールされていることを確認してください。
:::
自作のペイウォールを使用している場合は、SDK のメソッドを使ってウェブペイウォールを処理する必要があります。`.openWebPaywall` メソッドは次の処理を行います。

1. 固有の URL を生成し、Adapty が特定のユーザーに表示されたペイウォールと、そのユーザーがリダイレクトされたウェブページを紐付けられるようにします。
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 を生成しますが、プロダクトデータは URL に付加しません。Adapty ペイウォールのプロダクトとウェブペイウォールのプロダクトが異なる場合に使用してください。
SDK v4 では、`paywall` パラメータは `AdaptyFlowPaywall`（取得したフローのペイウォールバリアント）を受け取ります。インデックスアクセスする前に `flow.paywalls` が空でないことを確認してください（例：`flow.paywalls[0]`）。
:::

#### エラーの処理 \{#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
}

```