---
title: "在 Android SDK 中实现网页付费墙"
description: "设置网页付费墙，无需支付 Play Store 费用和审核即可收款。"
---

:::important
在开始之前，请确保您已[在看板中配置了网页付费墙](web-paywall)，并安装了 Adapty SDK 3.15 或更高版本。
:::

## 打开网页付费墙 \{#open-web-paywalls\}

如果您使用的是自行开发的付费墙，则需要通过 SDK 方法来处理网页付费墙。`.openWebPaywall` 方法会：
1. 生成一个唯一 URL，使 Adapty 能够将向特定用户展示的付费墙与其被重定向到的网页关联起来。
2. 追踪用户返回应用的时机，并以短时间间隔请求 `.getProfile`，以判断用户画像的访问权限是否已更新。

这样一来，如果付款成功且访问权限已更新，订阅几乎会立即在应用中激活。

:::note
用户返回应用后，请刷新 UI 以反映用户画像的更新。Adapty 将接收并处理用户画像更新事件。
:::

```kotlin showLineNumbers
Adapty.openWebPaywall(
    activity = activity,
    product = product,
) { error ->
    if (error == null) {
        // the web paywall was opened successfully
    } else {
        // handle the error
    }
}
```

:::note
`openWebPaywall` 方法有两个版本：
1. `openWebPaywall(product)`：通过付费墙生成 URL，并将产品数据添加到 URL 中。
2. `openWebPaywall(paywall)`：通过付费墙生成 URL，但不将产品数据添加到 URL 中。当 Adapty 付费墙中的产品与网页付费墙中的产品不同时，请使用此版本。
:::

## 在应用内浏览器中打开网页付费墙 \{#open-web-paywalls-in-an-in-app-browser\}

默认情况下，网页付费墙会在外部浏览器中打开。

为提供无缝的用户体验，您可以在应用内浏览器中打开网页付费墙。这样会在您的应用内显示网页购买页面，让用户无需切换应用即可完成交易。

要启用此功能，请将 `presentation` 参数设置为 `AdaptyWebPresentation.InAppBrowser`：

```kotlin showLineNumbers
Adapty.openWebPaywall(
    activity = activity,
    product = product,
    presentation = AdaptyWebPresentation.InAppBrowser,
) { error ->
    if (error == null) {
        // the web paywall was opened successfully
    } else {
        // handle the error
        val adaptyError = error
    }
}
```