Architecture Overview
DaxPay is composed of several sub-projects, each in its own git repository, working together. The main app owns the payment core and channel routing orchestration, and calls three independent channel sub-services (direct / aggregate / international) over HTTP, forming 20+ channel capabilities (direct channels built in; aggregate and international channels provided via extension packages and versions). This isolates channel SDKs and enables independent upgrades and elastic scaling. Frontend clients (Web / H5 / mini-program) access the main app through RESTful APIs.
Every sub-project is a separate git repository with its own version number; they are gathered into one workspace only for local debugging. In production, each is packaged and released independently.
Call Topology
Sub-project Responsibilities
| Sub-project | Port | Responsibility |
|---|---|---|
dax-pay-open | 9999 | Payment core, channel routing orchestration, risk control, IAM permissions, system administration |
dax-pay-channel-one | 20100 | Direct channels: Alipay / WeChat / Douyin / UMS / UnionPay (Cloud QuickPass) (Java) |
dax-pay-channel-two | 20200 | Aggregate channels: Lakala / HKRT / Leshua, etc. (Java) |
dax-pay-channel-three | 20300 | International payment channels such as Stripe (Java) |
dax-pay-ui | 6999 / 7999 | Admin / merchant web consoles |
dax-pay-h5 | 9500 | Cashier and mobile gateway (PC + mobile dual-endpoint) |
dax-pay-app-admin | — | Admin cross-platform app (H5/WeChat/Alipay/Douyin/App) |
dax-pay-app-merchant | — | Merchant cross-platform app (H5/WeChat/Alipay/Douyin/App) |
dax-pay-mini-cashier | — | Cashier mini-program (WeChat/Alipay/Douyin) |
The channel sub-apps also have experimental Go copies (
dax-pay-channel-one-go/dax-pay-channel-two-go). They are experimental and outside the mainline support scope. See Applications.
Tech Stack
| Layer | Technology |
|---|---|
| Main app | Java 25 · Spring Boot 4.1.1 · PostgreSQL 14+ · Redis 7+ · Apache Artemis · MyBatis-Plus 3.5 · Sa-Token 1.46 · SpringDoc 3.0 · MapStruct 1.6 |
| Channel sub-apps | Java 25 · Spring Boot 4.1.1 (same as the main app) |
| Web console | Vue 3.5 · Vite 8 · antdv-next · Vben Admin 5 · vxe-table 4 · TailwindCSS 4 · pnpm + Turbo |
| H5 | Vue 3.5 · Vite 8 · Vant 4 · UnoCSS · postcss-mobile-forever |
| Mini-program | uni-app · unibest 4 · wot-ui v2 · Vue 3.4 |
| Operations panel | Go · embed single binary · Vue 3 · Docker Compose orchestration |
| Permissions | Sa-Token (token name: Accesstoken) · RBAC |
| APIs | RESTful (kebab-case) · RSA signatures · AES-GCM encryption |
For the detailed sub-project architecture, see Applications and Code Architecture.