应用与插件生态

应用成业务,
插件成羽翼

两个独立体系,一条清晰边界:应用是可售卖的业务闭环,插件是可组合的能力增强。全部官方自研、签名分发、免编译安装——没有第三方上架,质量闭环。

两个体系

一条判别标准,两种生命周期

安装(部署级,代码落地)与绑定(站点级,业务开通)是两个独立动作——这条边界贯穿授权、计费与数据。

应用

安装包 .tzapp

定义
独立业务闭环(商城、预约、知识付费)
C 端形态
独立小程序分包,页面集合完整
站点关系
站点绑定后可用,占用租户名额
收费
按站点数授权档位,可增购叠加
依赖
应用之间彼此隔离,禁止互相依赖

插件

安装包 .tzaddon

定义
功能增强,无独立业务闭环
C 端形态
通常无页面;有则挂入父应用分包
站点关系
部署级安装,站点开关即用
收费
按部署一次买断,不占名额
依赖
可依赖父应用与其他插件(semver)

包规范

一个包,四端齐备

后端模块、站点后台页面、小程序分包、装修组件——一个签名包内全部备齐。 路由自动加前缀,业务表统一 app_{key}_ 前缀, 模型强制站点隔离。

app-shop-1.0.0.tzapp
├── info.json              # key / version / min_framework
├── App.php                # install · upgrade · onSiteBind
├── server/                # PSR-4: apps\shop\
├── migrations/            # 幂等迁移 · {{prefix}} 占位
├── menu.json              # 后台菜单 + 按钮权限点
├── hooks.php              # 事件订阅注册
├── trade.json             # 业务交易类型声明
├── diy/components.json    # 装修组件 schema
├── admin-dist/            # 预编译 ESM · 运行时加载
├── uniapp/                # 小程序分包源码(云构建)
└── signature.json         # Ed25519 官方签名

事件与扩展点

经由事件协作,而非互相引用

应用之间禁止 import,跨应用协作只走事件总线:同步 filter 事件可修改载荷(支付方式过滤、价格干预),异步 action 事件入 Redis 队列消费。扩展点是公共 API,主版本内保持兼容。

addon/seckill/hooks.php订阅即介入
// hooks.php — 订阅内核扩展点return [    'pay.paid' => [OrderPaidListener::class, 10],    'member.register' => [GiveCouponListener::class, 5],    'pay.ways.filter' => [SeckillPayFilter::class, 20],];

同步 filter

按 priority 顺序执行,可修改并返回载荷

异步 action

Redis 队列至少一次投递,监听器幂等

官方商店

官方商店,自研自卖

平台后台内置商店:浏览、购买、安装、更新一站完成。没有第三方上架,每一个包都由官方开发、签名与维护。

应用

商城

多规格商品 · 订单 · 售后

应用

预约

日历排期 · 核销 · 提醒

应用

知识付费

课程 · 专栏 · 虚拟交付

应用

外卖点餐

堂食 · 外送 · 小票联动

插件

商城 · 秒杀

限时限量 · 支付过滤

插件

商城 · 分销

多级返佣 · 提现审核

插件

阿里云短信

验证码 · 通知场景通道

插件

支付通道扩展

注册表接入新收单渠道

插件

小票打印

订单事件驱动出单

商店条目为规划示例;首发清单以官方云实际上架为准。

生意怎么算?

框架一次买断、应用按站授权、插件按部署买断——三种计费,一页说清。