实现网页付费墙

Important

在开始之前,请确保您已在看板中配置了网页付费墙,并安装了 Adapty SDK 3.6.1 或更高版本。

打开网页付费墙

如果你使用的是自己开发的付费墙,需要通过 SDK 方法来处理网页付费墙。.openWebPaywall 方法会执行以下操作:

  1. 生成一个唯一 URL,使 Adapty 能够将展示给特定用户的付费墙与其被重定向到的网页关联起来。
  2. 追踪用户何时返回应用,并以较短的时间间隔调用 .getProfile,以判断用户画像的访问权限是否已更新。

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


try {
    await adapty.openWebPaywall(product);
} catch (error) {
    console.warn('Failed to open web paywall:', error);
}
Note

openWebPaywall 方法有两个版本:

  1. openWebPaywall(product) — 通过付费墙生成 URL,并将产品数据附加到 URL 中。
  2. openWebPaywall(paywall) — 通过付费墙生成 URL,但不附加产品数据。在 SDK v4 中,该方法接收 AdaptyFlowPaywall(即获取到的流程中的付费墙变体)。在对其进行索引访问前,请先确认 flow.paywalls 不为空,例如 flow.paywalls[0]

错误处理

错误描述建议操作
AdaptyError.paywallWithoutPurchaseUrl付费墙未配置网页购买 URL检查付费墙是否已在 Adapty 看板中正确配置
AdaptyError.productWithoutPurchaseUrl产品没有网页购买 URL在 Adapty 看板中验证产品配置
AdaptyError.failedOpeningWebPaywallUrl无法在浏览器中打开该 URL检查设备设置,或提供其他购买方式
AdaptyError.failedDecodingWebPaywallUrl无法正确编码 URL 中的参数验证 URL 参数是否有效且格式正确

在应用内浏览器中打开网页付费墙

Important

从 Adapty SDK v3.15 起支持在应用内浏览器中打开网页付费墙。

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

为了提供更流畅的用户体验,你可以在应用内浏览器中打开网页付费墙。这样,购买页面将直接显示在应用内,用户无需切换应用即可完成交易。

要启用此功能,请将 WebPresentation.BrowserInApp 作为第二个参数传入 openWebPaywall


try {
    await adapty.openWebPaywall(
        product,
        WebPresentation.BrowserInApp, // default – WebPresentation.BrowserOutApp
    );
} catch (error) {
    console.warn('Failed to open web paywall:', error);
}