# safe-pay-websocket **Repository Path**: heaven96_admin/safe-pay-websocket ## Basic Information - **Project Name**: safe-pay-websocket - **Description**: 基于Spring Boot的实时支付管理系统,实现订单价格修改、WebSocket实时通知、动态二维码生成等功能,适用于电商/支付场景。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-01 - **Last Updated**: 2025-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SafePay WebSocket 支付系统 ## 项目简介 基于Spring Boot的实时支付管理系统,实现订单价格修改、WebSocket实时通知、动态二维码生成等功能,适用于电商/支付场景。 ## 技术架构 - 后端:Spring Boot + WebSocket + Redis分布式锁 + Lombok - 前端:HTML5 + jQuery + WebSocket客户端 - 数据交互:JSON格式通信 - 开发工具:IntelliJ IDEA ## 功能特性 ### 订单管理 1. 订单查询(GET /api/orders/{orderId}) 2. 支持并发的价格修改(POST /api/orders/{orderId}/price) - Redis分布式锁保证数据一致性 - 版本号控制防止脏读 ### 实时通知 1. WebSocket推送机制(ws://localhost:8020/ws/order) 2. 客户端自动刷新支付二维码 3. 状态同步:连接状态/更新提示 ### 支付集成 1. 动态二维码生成(调用第三方API) 2. 模拟支付链接跳转 3. 版本化订单跟踪(版本号递增机制) ## 环境要求 - Java 1.8 - Spring Boot 2.4.2 - Redis 6.x(默认配置) - Maven 3.x - Node.js(可选,前端开发) ## 快速启动 1. 启动Redis服务: ```bash bash redis-server ``` 2. 启动Spring Boot应用: ```bash cd ./safe-pay-websocket mvn spring-boot:run ``` 3. 访问前端页面: - 管理员:http://localhost:8020/admin.html - 用户端:http://localhost:8020/user.html ## 使用指南 ### 管理员操作 1. 查询订单: - 输入订单ID(默认ORDER_123) - 查看当前价格和版本信息 2. 修改价格: - 输入新价格(需>0) - 系统自动广播更新给关联客户端 ### 用户端功能 1. 自动获取订单详情 2. 显示动态二维码 3. 实时接收价格更新: - 旧二维码立即失效 - 1秒后显示新版二维码 4. 点击二维码跳转支付 ## 注意事项 1. **并发控制** - 使用Redis分布式锁(key: order:lock:*) - 锁过期时间10秒,避免死锁 2. **WebSocket配置** - 已启用CORS跨域访问(setAllowedOrigins("*")) - 生产环境建议配置具体域名 3. **二维码生成** - 当前使用第三方API(api.qrserver.com) - 可替换为内部生成服务 4. **测试数据** - 默认初始化订单:ORDER_123 (10元/版本1) - 测试账号:无需登录,直接访问 5. **日志记录** - 所有操作均有SLF4J日志输出 - 关键事件包含sessionID追踪 ## 项目结构 ``` src/ ├── main/ │ ├── java/ # Java源码 │ │ └── site.h4n.safepaywebsocket │ │ ├── Order.java # 订单模型 │ │ ├── OrderController.java # REST API │ │ ├── OrderService.java # 业务逻辑 │ │ ├── OrderWebSocketHandler.java# WebSocket处理 │ │ ├── WebSocketConfig.java # WebSocket配置 │ │ └── SafePayWebsocketApplication.java # 启动类 │ │ │ └── resources/ │ ├── static/ │ │ ├── admin.html # 管理端页面 │ │ └── user.html # 用户端页面 │ └── application.properties # 配置文件 │ └── test/ └── java/ └── site.h4n.safepaywebsocket └── SafePayWebsocketApplicationTests.java # 测试类 ``` ## 依赖管理 ```xml org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-websocket org.springframework.boot spring-boot-starter-data-redis org.projectlombok lombok ``` ## 扩展建议 1. 安全增强: - 添加JWT身份验证 - HTTPS加密通信 - Redis密码认证 2. 功能扩展: - 增加订单创建接口 - 添加支付状态回调 - 支持多支付渠道(支付宝/微信) 3. 性能优化: - 使用Redisson替代原生Redis操作 - 引入消息队列解耦 - 数据库持久化替代内存存储 4. 监控体系: - 添加Prometheus监控指标 - 集成分布式追踪(Sleuth/Zipkin) - WebSocket连接池管理