Apps Kit SDK logoApps Kit SDK
文档 · Apps Kit SDK 门户

付费墙

侧边栏中的 付费墙 分组(商品、商品组合、付费墙模板)是一个独立的功能模块,无需编写任何付费墙 UI 代码,即可构建付费页面并销售应用内订阅和一次性购买商品。这三个部分按固定流程逐层关联:商品 是从 Google Play、App Store 或 Amazon 导入,或手动录入的单个商店 SKU(订阅基础方案、优惠或一次性购买商品);商品组合 将同一应用的多个商品归入一个命名分组,并将其中一个商品设为默认选项;付费墙模板 则是实际的页面设计,在门户中通过可视化方式构建,用于展示商品组合中的商品并触发购买。模板发布后,即可返回“应用详情”→ 应用占位符的付费墙,将其关联到应用中的实际展示位置。该配置已在本指南前文中介绍。

商品

商品 页面(/paywall-products)以平铺表格展示您管理的所有应用的商品:#、标题、应用(图标、名称和包名)、商店(平台图标:Google Play、Apple App Store 或 Amazon Appstore;如果无法识别应用所属商店,则显示灰色短横线)、商店标识(商店端的商品/SKU 字符串,以等宽字体显示)、周期、状态 标签(启用/停用)、创建时间 和行操作。搜索框可匹配标题、SKU、描述、应用名称或包名,还可通过 应用、状态、商店 和 周期 筛选器进一步缩小范围。页面底部使用付费墙各页面统一的分页控件。

1789744318189-products-list.png

点击右上角的 创建商品 新建商品,或点击已有行进行编辑。两种操作都会打开双面板编辑器:首先选择商品所属的 应用(选择之前,其他功能均不可用),然后从该应用的商店 导入,或点击 添加商品 手动创建。

1789744336705-products-tree-grouped.png

应用有商品后,左侧面板会按类型分组:手动商品(直接在门户中创建)、一次性购买商品,以及各个 订阅。展开订阅可查看其 基础方案 和各基础方案下嵌套的 优惠(基础方案是商店在同一订阅下定义的计费和定价单元,例如“专业版周订阅”和“专业版月订阅”两个基础方案可以属于同一订阅)。

从 Google Play 导入(Android)。 对于 Google Play 应用,导入 → 连接 Google Play 会引导您完成一次性的两步配置,而不是只提供一个表单:

1789744372767-products-import-google-play.png

  • 1. Google Cloud — 在 Google Cloud Console 中创建服务账号,为其启用 Google Play Android Developer API,并下载其 JSON 密钥。
  • 2. Play Console — 通过该服务账号的电子邮件地址将其邀请到 Play Console,并授予 查看应用信息 和 管理商店发布信息 权限(弹窗会显示可复制的电子邮件地址,并提供两个控制台的直达链接)。

上传下载的 服务账号 JSON 密钥,按需勾选 包含未启用的基础方案和优惠(默认关闭,即仅导入 Play Console 中当前处于启用状态的内容),然后点击 获取商品。每条结果都会生成一个商品草稿,预先填入标题、描述、价格预览和状态;对于 Google,还会额外包含完整的基础方案/优惠树(订阅 ID、基础方案 ID,以及每项优惠的类型、定价、阶段和适用资格)。重新导入会使用 Play Console 中的数据刷新尚未保存的草稿,不会影响已保存的内容。

从 Apple App Store 导入(iOS)。 对于 App Store 应用,导入 App Store 商品 会要求提供应用的 Bundle ID(已预填)、Key ID、Issuer ID,并上传 App 内购买项目密钥(.p8) 文件。后面这三项均来自 App Store Connect 的“用户和访问”→“集成”→“App 内购买项目”页面,弹窗中提供了该页面的直达链接。只有在 Key ID、Issuer ID 和 .p8 文件均已提供后,获取商品 按钮才会启用。Apple 自身采用“订阅群组 → 商品”的层级结构,因此导入的商品不会像 Google 商品一样带有基础方案树。商品状态由 Apple 的实际审核状态决定:只有状态确实为 APPROVED 的订阅才会以“启用”状态导入;仍在审核中、需要开发者处理或已被拒绝的订阅均以“停用”状态导入。

从 Amazon Appstore 导入。 Amazon 使用基于文件而非凭据的导入流程:上传 商品目录 JSON(Amazon App Tester 导出的商品文件),然后点击 导入商品。类型为 SUBSCRIPTION 的条目会转换为订阅商品;类型为 ENTITLED 和 CONSUMABLE 的条目会转换为一次性购买商品。Amazon 没有基础方案的概念,因此每个导入的商品会直接携带其 Amazon 商品 ID/SKU,而不是基础方案树。

手动创建商品。 点击 添加商品 可创建草稿,其中的商店标识由您手动输入,而非通过导入获取。如果您尚未在商店控制台中设置商品,或希望先在门户中准备商品,这种方式很有用。显示的标识字段取决于应用所属的商店:Google Play 需要订阅 ID、基础方案 ID 和结算周期;App Store 需要订阅群组和商品 ID;Amazon 需要商品 ID 和商品类型。您也可以将商品标记为一次性购买,而非自动续订的订阅。

字段通过成功导入填充后,会变为只读,并显示提示 “从商店导入。请在 Google Play / App Store / Amazon 中修改,然后重新导入”。您需要在相应的商店控制台中修改后重新导入,而不能直接在此处编辑。

1789744448829-products-base-plan-offers.png

无论来自哪个商店,每个商品都有 标题(100 个字符)、必填的 描述(500 个字符)、可选的 功能 / 权益 标签、自定义键值对 参数,以及可切换的 状态(启用/停用);即使是导入的商品,也可以切换状态。周期 可设为每周、每月、3 个月、6 个月、每年、终身,或自由填写的 自定义周期。保存后的商品即可在下一步添加到 商品组合 中。

删除仍被商品组合或付费墙模板引用的商品时,门户不会静默失败,而是会显示二次确认,明确列出该商品仍关联的对象。您必须勾选确认框,明确知晓该商品也会从这些位置移除,才能继续删除。

商品组合

商品组合 将同一应用的多个商品归入一个命名组合,供付费墙模板展示。这一层决定了某个付费墙可以销售 哪些 商品,以及默认选中哪个商品。

1789744472318-offerings-list.png

商品组合 页面(/paywall-offerings)列出 #、商品组合名称、应用、商品 数量、状态、创建时间 和操作,并采用与商品页面相同的搜索框及应用/状态筛选方式。点击 创建商品组合 即可新建。

1789744566510-offerings-edit-products.png

每个商品组合只能属于一个 应用。请先选择应用,因为它决定了可供选择的商品(之后更改应用会重置当前尚未完成的商品选择)。填写 名称(100 个字符)和可选的 描述(500 个字符),然后在 组合中的商品 复选列表中,勾选该应用中要加入此组合的商品(包括各个基础方案变体)。列表提供 全选 快捷操作和独立搜索框。每个已勾选商品都有自己的 默认 按钮;点击后,该商品会成为组合中的默认/预选套餐,之前的默认商品则会自动取消默认标记,确保每个商品组合始终只有一个默认商品。至少选择一个商品后才能保存。

一个付费墙模板只能关联一个商品组合(在下文介绍的模板 配置应用 对话框中设置)。随后,放置在模板画布上的每张价格卡片都会绑定到该组合中的某个具体商品,这一绑定关系决定了付费墙实际可以展示哪些商品和价格。

付费墙模板

在 付费墙模板 中,您可以通过可视化方式设计实际的付费墙页面,无需编写原生 UI 代码。模板只需构建一次,绑定到一个应用和一个商品组合后,即可翻译为多种语言;发布后,可返回“应用详情”,将其关联到实际展示位置。

1789744608353-paywall-templates-list.png

模板列表

付费墙模板 页面(/paywall-templates)列出您创建的所有付费墙:#、模板名称、状态(已发布/草稿)、分配到的 应用、更新时间 和操作。您可以通过 状态 和 应用 筛选器缩小范围,也可以使用搜索框按名称搜索。

新建付费墙

点击 创建付费墙 后,可以选择两种创建方式:从零开始(“打开空白手机页面,添加您自己的堆栈、文本、套餐、按钮和法律条款链接”)或 使用模板(“选择现有付费墙,基于相同的画布和组件创建新草稿”)。

1789744746399-paywall-create-picker.png

使用模板 会打开模板库,其中分为 默认模板 和 您的模板。前者提供少量内置的初始设计(每个都有名称和描述),可在其基础上进行完全自定义;后者显示您账号中之前保存的模板。选择任意卡片,都会将该模板的画布和组件复制到一个新草稿中。由于商品绑定关系不会一并复制,您之后需要将每张价格卡片重新映射到自己的商品组合。从零开始 则会打开完全空白的画布。

1789744771801-paywall-use-template-gallery.png

设计付费墙(画布)

打开任何新建或已有模板,都会进入可视化编辑器。

1789744792287-paywall-builder-overview.png

工作区上方的顶栏在同一行显示标题、用于重命名的铅笔图标、配置应用、草稿 / 线上版本 切换控件、语言选择器,以及 清空 / 丢弃草稿 / 保存草稿 / 发布。左侧面板可在 图层 和 添加组件 之间切换:前者以树状结构展示画布上的所有元素,并提供堆栈复制/粘贴控件;点击任意堆栈上的 + 后,会切换到后者,即用于插入组件的组件面板。中间面板是按实际尺寸显示的手机边框实时预览;右侧面板是当前选中元素的 属性检查器,分为 内容、布局、图层顺序、外观 和 操作。

1789744812066-paywall-add-components.png

组件面板按用途分组:基础 组件(文本、图片、GIF、关闭按钮、视频,以及垂直、水平或层叠式堆栈容器,另有组合式页眉组件和空白自定义容器);付费墙 组件(套餐,即支持点击的价格卡片,提供简洁、推荐、紧凑、免费试用、百分比折扣、固定金额折扣和初始优惠价七种样式,以及 购买按钮、一次性购买按钮 和 快捷结账 按钮);交互 组件(选项卡,用于在月度/年度等方案分组之间切换;开关;按钮;轮播);以及 内容 组件(用户评价引文、功能列表、徽章、“奖项”/最优优惠徽章,以及服务条款/隐私政策的法律条款链接)。

绑定价格信息

1789744829200-paywall-package-product-data.png

每张 套餐 卡片的“内容”区域都有一个 商品组合套餐 下拉框,其中仅列出“配置应用”中所选商品组合的商品(依次为“订阅 → 基础方案 → 首选优惠”)。选择后,该卡片便会绑定到对应商品。随后,属性检查器会显示直接从该商品获取的实时只读 商品数据 预览(标题、描述、价格预览和功能),并提示您也可以在画布的其他位置通过 {planKey.price} 等价格占位符引用这些数据。如果卡片的视觉布局与所选套餐的实际需求不符(例如,普通价格卡片绑定了配置有免费试用的商品),属性检查器会显示 应用 [x] 布局 快捷操作,帮助保持二者一致。购买按钮和价格卡片还可以通过 在指定选项卡下可见 限定显示范围,使卡片仅在选中对应选项卡时显示。

配置应用 用于设置模板商品实际来自哪个应用和商品组合:

1789744847559-paywall-configure-app.png

在左侧选择一个 应用,再在右侧选择该应用的一个 商品组合(每个选项会预览其键,以及其中最多五个商品套餐的键)。一个模板同一时间只能面向一个应用和一个商品组合。

语言与翻译

1789744871233-paywall-language-dropdown.png

顶栏的语言下拉框列出默认语言及已添加的所有语言,每种语言都带有“默认”“已翻译”“需要更新”或“草稿”标签。管理语言 用于添加或移除语言(数量上限取决于您订购的服务方案);使用 AI 翻译 可对选定语言进行机器翻译(同样受服务方案的每小时/每日调用限额约束)。翻译不会单独复制一份布局,而是在唯一的默认语言设计上叠加文本替换。因此,选择非默认语言后,画布会切换到“翻译文本可编辑,样式已锁定”模式:翻译时无法添加、移动、调整大小或更改任何元素的样式,但每个文本字段的属性检查器都会进入译文输入模式,在其中输入内容只会保存该语言的文本。

草稿、线上版本与发布

草稿 / 线上版本 切换控件用于选择查看模板的哪个版本。线上版本为只读,因此修改前需要先切换到草稿。清空 会在本地将画布重置为空白(保存之前,不会删除服务器上的任何内容)。丢弃草稿 会永久移除尚未保存的草稿,并重新加载上次发布的版本。保存草稿 会将当前画布持久化保存为草稿,不影响当前线上内容。只有配置了且仅配置了一个应用和一个商品组合,并且所有套餐卡片都已绑定到实际商品后,发布 按钮才会启用。通过这些检查后,发布操作会将当前草稿设为新的已发布/线上版本;此后,您即可返回“应用详情”→ 应用占位符的付费墙,将其分配给应用占位符。