实现网页付费墙

在开始之前,请确保您已在看板中配置了网页付费墙,并安装了 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);
}

openWebPaywall 方法有两个版本:

  1. openWebPaywall(product) 根据付费墙生成 URL,并将产品数据添加到 URL 中。
  2. openWebPaywall(paywall) 根据付费墙生成 URL,但不添加产品数据到 URL。当 Adapty 付费墙中的产品与 Web 付费墙中的产品不同时,请使用此方法。

处理错误

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

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

从 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);
}