# pay-system **Repository Path**: Marsfactory/pay-system ## Basic Information - **Project Name**: pay-system - **Description**: 支付系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 2 - **Created**: 2026-01-27 - **Last Updated**: 2026-01-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Pay System - 多商户支付系统 基于 Spring Boot 3 + Vue 3 + UniApp 的多商户支付聚合系统,支持微信支付、支付宝扫码支付,包含PC端管理后台和微信小程序商城。 ## 项目架构 ``` pay-system/ ├── backend/ # 后端服务 (Spring Boot 3) ├── frontend/ # PC管理后台 (Vue 3 + Naive UI) ├── uniapp/ # 微信小程序 (UniApp) └── sql/ # 数据库脚本 ``` ## 技术栈 ### 后端技术 | 技术 | 版本 | 说明 | |---------------------|----------|----------------| | Spring Boot | 3.0.5 | 核心框架 | | Spring Security | 6.x | 安全框架 | | MyBatis Plus | 3.5.3 | ORM框架 | | MySQL | 8.0 | 数据库 | | JWT | 0.11.5 | Token认证 | | WechatPay SDK | 0.2.11 | 微信支付 | | Alipay SDK | 4.35.171 | 支付宝 | | Hutool | 5.8.18 | 工具类库 | | Lombok | - | 代码简化 | ### 前端技术 | 技术 | 版本 | 说明 | |---------------|---------|------------------| | Vue | 3.4 | 前端框架 | | Vite | 5.2 | 构建工具 | | Naive UI | 2.38 | UI组件库 | | Vue Router | 4.3 | 路由管理 | | Pinia | 2.1 | 状态管理 | | Axios | 1.6 | HTTP客户端 | ### 小程序技术 | 技术 | 说明 | |----------|-------------------| | UniApp | 跨平台开发框架 | | 微信小程序| 目标平台 | ## 功能模块 ### PC管理后台 - **登录注册**:用户认证,JWT Token管理 - **首页仪表盘**:订单统计、交易趋势图表、支付方式分布、累计交易额 - **商户管理**:商户信息CRUD、微信支付配置、支付宝配置 - **订单管理**:订单列表、多条件搜索、订单详情 - **发起支付**:选择商户、选择支付方式、生成支付二维码 ### 微信小程序 - **商城首页**:轮播图、商品列表展示 - **商品详情**:商品信息、立即购买 - **微信支付**:小程序内完成支付 ## 数据库设计 | 表名 | 说明 | |-------------------|----------------| | sys_user | 系统用户表 | | merchant | 商户信息表 | | pay_order | 支付订单表 | | pay_record | 支付流水表 | | wechat_pay_config | 微信支付配置表 | | alipay_config | 支付宝配置表 | ## 快速开始 ### 环境要求 - JDK 17+ - Node.js 18+ - MySQL 8.0+ - Maven 3.6+ ### 1. 初始化数据库 ```sql -- 创建数据库 CREATE DATABASE pay_system DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; -- 导入SQL脚本 USE pay_system; SOURCE sql/pay_system.sql; ``` ### 2. 配置后端 修改 `backend/src/main/resources/application.yml`: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/pay_system?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: your_username password: your_password # 支付回调域名(生产环境需配置公网域名) pay: notify-domain: https://your-domain.com # 微信小程序配置 wechat: miniapp: appid: your_appid secret: your_secret ``` ### 3. 启动后端 ```bash cd backend mvn spring-boot:run ``` 后端服务运行在:http://localhost:8080 ### 4. 启动前端 ```bash cd frontend npm install npm run dev ``` 前端服务运行在:http://localhost:3000 ### 5. 小程序开发 ```bash # 使用 HBuilderX 打开 uniapp 目录 # 运行到微信开发者工具 ``` ## API接口文档 ### 认证接口 | 方法 | 路径 | 说明 | 认证 | |------|---------------------|----------|------| | POST | /api/auth/login | 用户登录 | 否 | | POST | /api/auth/register | 用户注册 | 否 | ### 仪表盘接口 | 方法 | 路径 | 说明 | 认证 | |------|----------------------|--------------|------| | GET | /api/dashboard/stats | 获取统计数据 | 是 | ### 商户管理接口 | 方法 | 路径 | 说明 | 认证 | |--------|--------------------------------|----------------|------| | GET | /api/merchant/list | 分页查询商户 | 是 | | GET | /api/merchant/all | 获取所有商户 | 是 | | GET | /api/merchant/{id} | 获取商户详情 | 是 | | POST | /api/merchant | 新增商户 | 是 | | PUT | /api/merchant | 修改商户 | 是 | | DELETE | /api/merchant/{id} | 删除商户 | 是 | | GET | /api/merchant/{id}/pay-config | 获取支付配置 | 是 | | POST | /api/merchant/{id}/wechat-config | 保存微信配置 | 是 | | POST | /api/merchant/{id}/alipay-config | 保存支付宝配置 | 是 | ### 订单管理接口 | 方法 | 路径 | 说明 | 认证 | |--------|-------------------------|------------------|------| | GET | /api/order/list | 分页查询订单 | 是 | | GET | /api/order/{id} | 获取订单详情 | 是 | | GET | /api/order/no/{orderNo} | 根据订单号查询 | 是 | | DELETE | /api/order/{id} | 删除订单 | 是 | ### 支付接口 | 方法 | 路径 | 说明 | 认证 | |------|-------------------------|--------------|------| | POST | /api/pay/create | 创建支付订单 | 是 | | GET | /api/pay/query/{orderNo}| 查询支付状态 | 是 | ### 支付回调接口 | 方法 | 路径 | 说明 | 认证 | |------|--------------------------|--------------|------| | POST | /api/pay/notify/wechat | 微信支付回调 | 否 | | POST | /api/pay/notify/alipay | 支付宝回调 | 否 | ### 小程序接口 | 方法 | 路径 | 说明 | 认证 | |------|---------------------------|--------------|------| | POST | /api/miniapp/login | 微信登录 | 否 | | GET | /api/miniapp/home | 获取首页数据 | 否 | | GET | /api/miniapp/banners | 获取轮播图 | 否 | | GET | /api/miniapp/products | 获取商品列表 | 否 | | GET | /api/miniapp/products/{id}| 获取商品详情 | 否 | | POST | /api/miniapp/pay | 创建小程序支付 | 否 | ## 支付配置说明 ### 微信支付配置 1. 登录[微信商户平台](https://pay.weixin.qq.com/) 2. 获取以下信息: - 商户号(mch_id) - 应用ID(app_id) - APIv3密钥 - 商户私钥(apiclient_key.pem内容) - 证书序列号 3. 在商户配置页面填写上述信息 ### 支付宝配置 1. 登录[支付宝开放平台](https://open.alipay.com/) 2. 创建应用并获取: - 应用ID(app_id) - 应用私钥 - 支付宝公钥 3. 在商户配置页面填写上述信息 ### 支付回调地址 - 微信支付:`https://your-domain.com/api/pay/notify/wechat` - 支付宝:`https://your-domain.com/api/pay/notify/alipay` ## 安全配置 ### 认证机制 - 使用 Spring Security + JWT 进行认证授权 - Token有效期可在配置文件中调整 ### 接口放行规则 - `/api/auth/**` - 登录注册接口 - `/api/pay/notify/**` - 支付回调接口 - `/api/miniapp/**` - 小程序接口 ### 安全建议 1. 生产环境务必使用 HTTPS 2. 定期更换 JWT 密钥 3. 支付密钥等敏感信息建议加密存储 4. 回调地址必须为公网可访问地址 ## 测试账号 | 用户名 | 密码 | 角色 | |--------|--------|--------| | admin | 123456 | 管理员 | ## 项目截图 ### 仪表盘 - 今日订单/交易额统计 - 最近7天订单趋势图 - 支付方式分布图 - 累计交易总额 ### 商户管理 - 商户列表 - 微信支付配置 - 支付宝配置 ### 订单管理 - 订单列表筛选 - 订单详情查看 ### 发起支付 - 选择商户 - 填写订单信息 - 生成支付二维码 ## 开发说明 ### 后端开发规范 - 使用 Lombok 简化代码 - 统一返回 Result 封装 - 异常统一由 GlobalExceptionHandler 处理 - 使用 MyBatis Plus 分页插件 ### 前端开发规范 - 使用 Composition API - 使用 Pinia 进行状态管理 - API 统一封装在 api/index.js - 组件使用 Naive UI ## License MIT License