应用介绍
DaxPay 由多个独立 git 仓库的子项目协同构成,主应用通过 HTTP 调用各独立通道子服务,前端多端通过 RESTful 接入主应用。下面分别介绍各应用 (含已交付与规划中)。
主应用 dax-pay-open
支付核心后端,承载支付业务、通道路由编排、风控与系统管理。
| 模块 | 职责 |
|---|---|
daxpay-platform | 基础层 — 通用契约 (core) + 技术设施 (common) + 平台能力 (capability) + 业务服务 (service) |
daxpay-payment | 支付业务 — 领域内核 (core) + 运营端 (admin) + 商户端 (merchant) + 统一收单 (unipay) + 移动端 (app-admin) |
daxpay-channel | 通道业务 — 13 个通道的编排层 (路由/策略/配置 CRUD,不含 SDK) |
daxpay-plugin | 支付插件 — 易支付协议、风控黑名单 |
daxpay-demo | 功能演示模块 |
daxpay-start | 启动入口 |
技术栈: Java 25 · Spring Boot 4.1.0 · PostgreSQL 14+ · Redis 7+ · Apache Artemis · MyBatis-Plus 3.5 · Sa-Token 1.45 · SpringDoc 3.0 · MapStruct 1.6 · Hutool 5.8 · Caffeine 3.2 · BouncyCastle 1.84
端口: 9999
启动:
cd dax-pay-open/daxpay-start
mvnd spring-boot:run -Dspring-boot.run.profiles=dev通道子应用 dax-pay-channel-one
对接支付宝、微信、抖音、银联商务等直连通道的独立部署微服务,承载第三方 SDK 的直接调用。
| 模块 | 说明 |
|---|---|
daxpay-platform | 基础层 — core + common (util/json/i18n) + service-system |
daxpay-channel-impl | 通道实现 — alipay / wechat / douyin / ums 四个子模块 |
daxpay-channel-start | 启动入口 |
SDK 版本: alipay-sdk 4.40.272.ALL · weixin-java-pay (wxjava) 4.8.4.B · douyinpay 1.0.6 · UMS 自研 HTTP 对接
与主应用通信 — 主应用通过 @HttpExchange 声明式客户端调用,链路 AES-GCM 加密,响应统一 {code, msg, data}
端口: 20100
通道子应用 dax-pay-channel-one-go
与 Java 版 channel-one 完全对等的 Go 实现,端口、路由、响应契约一致,作为通道对接层的另一种语言选择。
| 维度 | 实现 |
|---|---|
| Web 框架 | Gin v1.10.1 |
| Go 版本 | 1.26 |
| 对接通道 | 支付宝、微信 (直连 + ISV)、银联商务 (UMS)、抖音 (与 Java 版对等) |
| 第三方 SDK | 无,全部自研 HTTP 签名对接 |
| 链路追踪 | OpenTelemetry (进程内,不导出 OTLP) |
| 国际化 | 嵌入式 JSON,支持 10 语种 |
定位 — 与 Java 版并列的另一种语言选择,提供更高吞吐与更低内存占用的部署选项;按团队技术栈按需选用。
端口: 20100 (与 Java 版相同)
勿与 Java 版同时启动
两者端口与路由完全重叠,同时启动会冲突。部署时二选一。
通道子应用 dax-pay-channel-two
对接聚合通道的独立部署微服务,与 channel-one 架构完全相同,区别在于承载的通道集合。
| 模块 | 说明 |
|---|---|
daxpay-platform | 基础层 (与 channel-one 同构) |
daxpay-channel-impl | 通道实现 — lakala / hkrt / dougong / leshua / vbill / hmpay / adapay / fuyou (+ yeepay 待启用) |
daxpay-channel-start | 启动入口 |
已对接通道 — 拉卡拉、海科融通、斗拱 (汇付天下)、乐刷、随行付、河马付 (杉德)、Adapay、富友;易宝已实现但启动模块未启用
SDK 版本 — 各聚合通道 SDK + yeepay 4.4.15
端口: 20200
Web 管理端 dax-pay-ui
管理后台前端,基于 Vue Vben Admin 5 二次开发的 monorepo,同源编译出运营端与商户端两个独立应用。
| 子应用 | 定位 | dev 端口 | VITE_APP_CLIENT_CODE |
|---|---|---|---|
apps/daxpay-admin | 运营 (管理) 端 — 平台运营方使用 | 6999 | admin |
apps/daxpay-merchant | 商户端 — 商户自助使用 | 7999 | merchant |
两端共用 packages/ 下的框架包 (@core / effects / locales / stores / utils 等) 与 packages/business/ui-biz 业务组件库,通过菜单 client_code 与权限码实现端级隔离。
dax-pay-ui/
├── apps/
│ ├── daxpay-admin/ # 运营端应用
│ └── daxpay-merchant/ # 商户端应用
├── packages/ # 核心包 (@core / effects / business / locales ...)
├── internal/ # 内部工具 (lint / tsconfig / vite-config)
└── scripts/ # 脚本 (deploy / turbo-run / vsh)技术栈 — Vue 3.5 · Vite 8 · TypeScript 5.9 · antdv-next · vxe-table 4 · Vben Admin 5 · TailwindCSS 4 · vue-i18n 11 · pnpm 10 + Turbo 2.9
国际化 — 10 语种 (中日韩 + 东盟四语 + 繁体台港),框架层与应用层消息合并加载
启动:
pnpm run dev:admin # 运营端 6999
pnpm run dev:merchant # 商户端 7999移动 H5 端 dax-pay-h5
移动端网关应用,单应用同时承载 PC 与移动两套完全独立的页面,由入口设备探测分发。
- 设备探测 —
index.html在 Vue 挂载前写入window.__DEVICE__('pc' | 'mobile'),零闪烁 - 目录分离 — 移动端代码在
src/mobile/,PC 端在src/pc/,公共代码在src/shared/ - 移动适配 —
postcss-mobile-forever做 vw 适配;PC 源码被排除出 vw 转换,使用原生 px + 媒体查询 - 路由三桶 — 真实路由 / 对端独占存根 / catch-all 404,单一 URL 空间两端各自解析
技术栈 — Vue 3.5 · Vite 8 · Vue Router 5 · Vant 4 (移动端) · UnoCSS 66 · Pinia 3 · vue-i18n 11
端口 (dev): 9500
国际化 — 10 语种
启动: pnpm run dev
运营端应用(小程序)dax-pay-app-admin
面向平台运营方的管理类小程序,基于 unibest 4 (uni-app + Vue 3) 二次开发,一次开发多端编译。对应 Web 运营端 (apps/daxpay-admin),调用 /app-admin/ 接口管理商户、门店、用户、应用等资源。
| 维度 | 实现 |
|---|---|
| UI 库 | @wot-ui/ui (wot-ui v2,组件前缀 wd-*) |
| 列表 | z-paging |
| 样式 | UnoCSS (carbon 图标集) |
| 国际化 | vue-i18n |
编译目标 — H5 / 微信小程序 / 支付宝小程序 / 抖音小程序 / App (Android / iOS)
页面结构 — tabBar 三项 (工作台 / 应用 / 我的) + 商户管理子包 (pages-merchant) + 支付配置子包 (pages-payment) + 系统设置子包 (pages-system)
国际化 — 全端 10 语种;小程序端条件编译仅中英 (繁体/日韩/东盟仅 H5 与 App 打入)
启动:
pnpm run dev # H5
pnpm run dev:mp # 微信小程序商户端应用(小程序)dax-pay-app-merchant (规划中)
面向商户自助的管理类小程序,与 dax-pay-app-admin (运营端) 对标,技术栈一致 (unibest 4 + wot-ui v2)。商户通过它管理自己的订单、门店、用户、应用与支付配置。
当前状态 — 规划中,参照 dax-pay-app-admin 的工程结构与页面骨架实现。
收银小程序 dax-pay-cashier
面向最终消费者的收银类小程序,技术栈与 dax-pay-app-admin 一致,但定位极简收银。
| 维度 | 实现 |
|---|---|
| 编译端 | 微信小程序 / 支付宝小程序 / 抖音小程序 (无 App / H5) |
| 页面 | 首页 / 认证 / 支付 / 结果 (4 页,全自定义导航) |
| 子包 | 无 (极简) |
| 国际化 | 仅中英 |
与 dax-pay-app-admin 的差异 — 后者是功能完整的运营端管理应用 (30+ 页面);前者是面向最终消费者的极简收银台,无 tabBar、无子包、依赖精简。
启动: pnpm run dev:mp-weixin (默认微信小程序)
文档站 dax-pay-doc
本站,基于 VitePress 2.0 构建。
技术栈 — VitePress 2.0 · Vue 3.5 · mermaid 11 · markmap · medium-zoom · 阅读增强插件
特性:
- 密码保护 — 商业版板块采用构建时 AES-256-GCM 加密 + 运行时滚动密码 / 万能密码验证
- 图表 — 支持 mermaid 流程图与 markmap 思维导图
- LLM 友好 — 构建期生成
llms.txt/llms-full.txt,可供 AI 工具直接抓取 - 中英双语 — 中文 (root) + 英文 (
/en/)
启动: pnpm dev (5173) / pnpm build