平台后台
开张前的准备
系统装好之后、接第一个客户之前,平台后台里有五件事要按顺序做完:装应用与插件、接入微信第三方平台、配置 AI 模型、配置地图服务、把名额与功能打包成可售卖的套餐。本章逐件讲操作流程与每个字段的含义。
为什么是这个顺序
登录平台后台 /admin/platform(管理员账号在安装时创建,见安装与部署)。刚装好的系统是一个空货架:应用商店里一个应用都没有,AI 与地图页面的下拉框里也没有任何可选项。下面五步是有依赖关系的,建议照着做:
- 1应用商店(产品 → 应用商店):先把要卖的应用装上,再把要用的插件装上。AI 驱动、地图服务商、支付通道、短信通道这些都是插件贡献的——插件没装,第 ③ ④ 步的下拉框就是空的。
- 2微信第三方平台(产品 → 微信三方平台):接入之后,客户的小程序可以托管到你这里,由你代为提交审核和发布。
- 3AI 模型接入(产品 → AI 模型接入):填服务商密钥、放行可用模型。
- 4地图服务(产品 → 地图服务):填服务商密钥,供定位、地址解析、门店选点使用。
- 5套餐管理(客户 → 套餐管理):把应用名额与功能权益打包定价。放最后是因为套餐里要填应用标识,得先知道自己装了哪些应用。
① 应用商店 · 装应用
页面右上角、「安装记录」左边有「应用」「插件」两个页签。应用是可以绑定到站点的完整业务能力(商城、表单等);装好后,站点方在自己后台的「设置 → 应用授权」里绑定,绑定会占用一枚名额。
官方应用:一键安装,不用下载
「应用」页签顶部有一块随框架分发的官方应用面板——这些安装包已经随框架放在你这台服务器上,不需要先下载再上传。每行显示应用名、随附版本、状态与包体积:
| 状态 | 含义 | 可做的操作 |
|---|---|---|
| 未安装 | 本机有包,还没装 | 点「安装」 |
| 已安装 | 已装且就是这个版本 | 无(显示「已是最新」) |
| 可升级 | 已装的版本比随附包低 | 点「升级」 |
| 已装更高版本 | 你手动装过更新的包 | 无 |
点安装会先弹确认框,复述将要安装的应用名、版本与包体积;确认后即开始建表、注册菜单。这块面板只列应用,插件不在其中。
第三方应用:上传安装包
- 1
确认页签
先切到「应用」(装应用)或「插件」(装插件)——上传按钮按当前页签分发。选错也不要紧:包里写明了自己是应用还是插件,类型不符会被直接拦下并提示你切页签。
- 2
点右上角「上传安装包」
接受
.tzapp(应用包)与.tzaddon(插件包)。选好文件后,系统会先读包内信息,弹出确认框告诉你「将安装【商城】v1.4.0(标识 shop,12.3 MB)」——不是只给一个文件名。 - 3
等上传与安装完成
上传阶段有百分比进度条,此阶段中断不会改动任何东西;上传完成后进入服务端安装,页面提示「请勿关闭本页」。安装过程中出错会自动回滚。
- 4
看结果
成功后弹窗告诉你装了哪个应用、什么版本,以及是否还需要重启加载(见下一节)。失败时弹窗直接显示失败原因,列表里那一行也会用红字保留原因。
① 应用商店 · 装插件
切到「插件」页签。插件是给已有能力做补充的小件,分两级:
| 级别 | 作用范围 | 典型用途 |
|---|---|---|
| 框架级 | 装好后全站可用,各站点可自行关闭 | 额外的支付方式、通知通道、AI 驱动、地图服务商、对象存储、云打印驱动 |
| 应用级 | 只在绑定了对应父应用的站点里生效 | 为某个应用扩展的功能 |
插件列表列出插件名与标识、版本、级别(应用级会标出父应用)、状态、关闭站点数(有多少个站点主动关掉了它)和安装时间。插件没有「随框架分发」面板,一律用右上角「上传安装包」装 .tzaddon 包——官方插件包同样随框架一起放在服务器上(服务端目录下的 examples/)。
① 应用商店 · 装完为什么要点「重启加载」
装完(或卸载、启停)之后,页面顶部可能出现一条黄色横幅:有插件的后端路由变更待生效。这不是出错了——扩展的菜单、绑定关系是即时生效的,但它自带的接口(比如它自己的配置页要调的那些)需要服务重启一次才会挂上。
框架没有在每次装卸后强制重启,而是把这次必需的重启收敛成一个由你决定时机的动作:可以连着装五个扩展,最后点一次「重启加载」,一次覆盖本次所有装卸。
- 1
点横幅右侧「重启加载」
服务开始优雅重启,横幅变成「服务重启中,正在加载插件后端路由…」。
- 2
等约 15 秒
期间服务短暂不可用。本页会自己盯着,不用刷新;完成后自动收起横幅并弹出「新路由已生效」。
① 应用商店 · 启用、停用与卸载
已装列表每行右侧的「⋯」菜单里是全部管理动作。行上的状态与绑定站点两列是做决定前要先看一眼的:
| 状态 | 含义 |
|---|---|
| 已启用 | 正常工作中 |
| 已停用 | 被你手动停用,绑定关系与数据都还在 |
| 安装中 / 卸载中 | 正在处理,列表每几秒自动刷新 |
| 安装失败 | 行内红字显示失败原因 |
- 停用:会弹确认框,并把「当前有 N 个站点绑定了这个应用」摆在你面前。停用后这些站点后台里该应用的菜单与接口立即不可用、前台相关功能同时停止服务,但绑定关系与数据都保留,随时可以重新启用。停用框架级插件同理——它贡献的支付方式、通知通道、功能开关会在所有站点立即不可用。
- 启用:恢复性动作,点了直接执行,不再问一遍。
- 卸载:删除程序文件,收回它在各站点后台的菜单与接口。如果这个应用有自己的业务数据表,确认框里会多出一个默认不勾的红色复选框「同时删除业务数据表」,并把表名一一列出。不勾选就保留数据,以后重装还能接着用;勾了则不可恢复。
安装记录:查过程,也管卡住的操作
右上角「安装记录」里是全部安装、卸载、启停、绑定解绑的流水,每条含动作、状态(运行中 / 成功 / 失败 / 已回滚)、走到哪一步(断点)与失败原因。装到一半服务被中断时,这里是唯一的补救入口:
- 当存在超过 10 分钟没有进展的「运行中」记录时,弹窗顶部会出现「回滚中断的操作」按钮(正在正常进行的安装不会被误判)。
- 回滚会清除半成品文件、还原备份、回收已经注册的菜单与路由;业务数据表一律保留。
- 回滚完成后会报告回滚了几个任务、哪些失败了,对应的应用随即回到可操作状态。
① 应用商店 · 给单个应用定价(可选)
除了后面讲的整包套餐,你还可以让租户单买某个应用的站点名额。在应用行的「⋯ → 套餐定价…」里管理这个应用的可售套餐:按站点名额售卖,卖的是永久名额,购买后直接进该租户的应用名额池;租户在自己后台的「订阅与账单 → 应用订购」自助购买。
| 字段 | 填法 |
|---|---|
| 套餐名 | 必填,如「单站版」 |
| 售价(元) | 必填,不小于 0;填 0 表示免费开通 |
| 站点名额 | 必填,正整数——买一次给几枚名额 |
| 排序 | 数字,控制租户看到的先后 |
| 一句话卖点 | 可选,如「含 1 个站点名额,适合单店起步」 |
每条套餐可以「编辑」「下架 / 上架」「删除」。下架与删除都不影响已购:已成交的订单按成交时的快照履约;但如果还有待支付的订单,删除会被拒绝。没有应用管理权限的平台员工进来是只读的,标题旁会挂一个「只读」徽章。
② 微信第三方平台
接入之后,客户的小程序管理员只需扫一次码,就把小程序托管到了你这里——之后上传代码、提交审核、发布、配置域名全部由你的平台代办,客户不用再碰微信开发者工具。页面分「平台配置」「模板库」「授权站点」三个页签。
第一步:平台配置
| 字段 | 说明 |
|---|---|
| 启用状态 | 启用 / 停用。停用时整套代发布能力关闭 |
| 第三方平台 AppID | 微信开放平台「第三方平台」的应用 ID,wx 开头 |
| AppSecret | 第三方平台密钥 |
| 消息校验 Token | 你在开放平台自定义的 Token |
| 消息加解密 Key | 43 位 EncodingAESKey |
同一张卡片下半部分是小程序域名清单:request / socket / uploadFile / downloadFile 四类合法域名,外加业务域名(webview 可跳转),每行一个地址。站点方在发布页点「配置域名」时,会把这份清单全量覆盖下发到它自己的小程序——所以这里填的是所有托管小程序共用的一份。
第二步:回填地址并检查推送
- 1
复制三个地址
右侧「开放平台回填信息」卡片给出授权事件接收 URL、消息与事件接收 URL、授权发起页域名,每项都有「复制」按钮。把它们填到微信开放平台的「第三方平台 → 开发资料」里。
- 2
把出口 IP 加进白名单
开放平台的 IP 白名单必须包含本部署的出口 IP,否则接口调用会被微信拒绝。
- 3
看「推送健康度」徽章
微信每 10 分钟向你推送一次验证票据。徽章显示「验证票据正常」即为通;显示「未收到验证票据」或「验证票据已过期」,多半是回填地址写错或 IP 白名单没加。徽章旁边还写着最近一次收到的时间。
- 4
点「检测连通性」
系统会真的去换一次接口调用凭证,成功显示「接口调用凭证获取正常」,失败会把微信返回的原因显示出来。
第三步:模板库
站点提交小程序代码时,用的是你在这里备好的代码模板。凭证没配全或没启用时,这个页签只有一句引导语;配置完成后分左右两栏:
- 草稿箱:开发者用小程序开发工具上传代码到微信开放平台后,草稿会同步到这里。点「选为模板」把它收进模板列表。
- 模板列表:可「设为默认」(站点没有显式选择模板时用它)或「删除」。删除后站点无法再选用该模板提交代码,已提交和已发布的版本不受影响。
第四步:让站点来授权
剩下的动作在站点侧:站点方进「内容 → 小程序发布」点「发起授权」,让小程序管理员扫码确认(授权链接 10 分钟有效,也可以复制手机端链接在微信里打开)。授权完成后,这个站点会出现在「授权站点」页签里,列出站点、小程序昵称、主体、AppID、状态与授权时间。之后站点就能走「提交代码 → 体验版验证 → 提审 → 发布」的完整流程,并一键下发你配好的域名清单。
③ AI 模型接入
这里配置的是你这套部署统一使用的大模型接入:服务商地址、密钥,以及允许各站点选用的模型清单。装了 AI 驱动插件之后,右上角「新建接入」进入编辑页填写。
| 字段 | 填法 |
|---|---|
| 接入标识 | 2–32 位小写字母 / 数字 / 下划线 / 中划线,字母开头,如 deepseek。创建后不可修改 |
| 接入名称 | 给自己看的名字,如「DeepSeek」,不超过 64 字 |
| 驱动 | 由已装插件提供,分对话 / 生图 / 视频 / 向量嵌入四类,按用途选 |
| 接入地址 | 服务商的 OpenAI 兼容网关根路径,如 https://api.deepseek.com/v1 |
| API Key | 新建必填;编辑时留空 = 保留已保存的密钥(从不回显) |
| 排序 / 启用状态 | 控制展示顺序;停用后站点侧不可选 |
下面一张卡片是放行模型:逐条「添加模型」,左边填模型标识(如 deepseek-chat),右边填展示名(留空则直接用模型标识)。只有放行的模型才会出现在站点侧的选择列表里——服务商支持一百个模型,不代表你要把一百个都开出去。
- 1
保存
保存成功后自动回到列表。列表能一眼看到每个接入的驱动、地址、放行模型数、密钥是否已配置、启用状态。
- 2
点「测试连接」
会真的去调服务商的模型列表接口,成功时弹窗列出服务商实际可用的模型。用它核对你的放行清单:模型标识拼错在这里能立刻发现,不必等站点用出错。
- 3
需要下线时
行内「停用」即可保留配置停止供给;「删除」是彻底移除,仍被智能体使用中的接入删不掉。
④ 地图服务
地图能力供各站点的地址解析、门店选点等场景使用。装好地图驱动插件后,这一页只有三个字段:
| 字段 | 说明 |
|---|---|
| 服务商 | 下拉选项来自已安装的地图驱动插件 |
| 服务端密钥(key) | 用于服务端代理的地址解析与 POI 检索请求,不会下发到浏览器 / 小程序端。已配置时留空即不修改 |
| 前端 SDK 公开 key(可选) | 用于前台页面直接渲染地图。它会随前端代码下发,请务必在服务商控制台设置域名白名单。留空则不加载前端地图 SDK |
填完点「保存地图设置」,再用下方的连通性测试验一次:输入一个地址(默认「北京市」)点「测试解析」,成功会回显解析出的完整地址与经纬度;失败会提示检查密钥或换个地址重试。
⑤ 套餐管理:把名额与功能打包定价
菜单「客户 → 套餐管理」。一档套餐 = 一个价格 + 一段有效期 + 若干应用名额 + 若干功能权益。租户订购后系统自动发放名额到它的名额池,租户再把名额绑到具体站点。列表支持按上架 / 下架筛选,行上可直接「上架 / 下架」「删除」(删除前要先下架)。
点「新建套餐」进入编辑页,共三个分区,共用一个「保存」按钮,来回切换不会丢草稿。哪个字段填错了,保存时会自动跳到出错的分区并高亮那个输入框,「保存」按钮上方同时告诉你一共还有几处要改。
分区一:套餐信息
| 字段 | 填法 |
|---|---|
| 套餐标识 | 如 pro,创建后不可修改 |
| 套餐名称 | 对外展示的名字,如「专业版」 |
| 价格(元) | 按元填写,保存时自动折算;不小于 0 |
| 时长(天) | 订购一次给多少天;填 0 表示永久有效 |
| 排序 | 控制租户看到的先后 |
| 状态 | 上架 / 下架。下架后不再对外可购,已订阅租户不受影响 |
分区二:应用配额
一行一个「应用标识 + 名额」。应用标识就是应用商店列表里应用名下方那行灰色小字(如 shop),名额必须是正整数。一行都不加,表示这档套餐不含应用名额(比如只卖功能权益的基础档)。同一个标识不能填两行,系统会当场报重复。
分区三:功能权益
上半部分是机器强制执行的权益:从功能开关清单里勾选要纳入本套餐的项,勾上之后右侧给值——开关型选「开启 / 关闭」,数量型填非负整数(0 = 不限)。数量型里有一类是周期额度(如每月短信条数),随用随扣、到期自动重置,具体周期与单位在「客户 → 功能开关」页每一项下面写着。
下半部分「套餐特权」是纯文案:一行一条对外展示的卖点(如「自定义域名」「去除广告」),不产生任何实际限制,可以留空。
几条卖出去以后才会遇到的规则
- 改套餐不影响已成交的单:下单那一刻会把配额与权益拍成快照,后续你怎么调价、怎么改配额,都按成交时的快照履约。
- 续费顺延不重算:续费是在「今天」与「现有到期时间」里较晚的那个之上顺延叠加,客户提前续费不吃亏。同一档续费不会重复发名额;换档续费只按新旧套餐的差额补发或回收。
- 降配不硬夺:租户换到更小的套餐时,已被站点占用或处于冷却中的名额不会被强行收走;系统记下目标值,等名额自然释放后再继续回收——经营中的站点不会因为一次调档突然停摆。
- 收款与履约解耦:万一支付成功但权益没发全(比如那一刻池子正好被占满),订单不会就此搁浅——后台每 5 分钟自动重试补发,不需要人工干预。进度在「客户 → 计费订单」里看。
不走套餐也能给名额:「客户 → 名额管理」可以直接把某个应用的名额手工划拨给指定租户,也能回收未被占用、且不在冷却中的名额。适合定制合作、试用赠送这类一次性场景。
开张前自检
- 应用商店里要卖的应用都是「已启用」,没有停在「安装中」或「安装失败」的行。
- 顶部的「重启加载」横幅已经消失(点过并等它完成,或已手动重启后端)。
- 要用微信托管发布的话:推送健康度显示「验证票据正常」,连通性检测通过,模板库里至少有一个模板并已设为默认。
- 要用 AI 的话:至少一个接入处于启用状态、密钥显示「已配置」、「测试连接」通过、放行模型不为空。
- 要用地图的话:服务端密钥已配置,「测试解析」能返回经纬度。
- 至少有一档上架状态的套餐,应用标识拼写正确,且「系统 → 授权信息」里对应应用的池子余量够卖。
以上都打勾之后,就可以创建第一个租户、开第一个站点了。