# crossPayGoUser **Repository Path**: only-win-wisdom/cross-pay-go-user ## Basic Information - **Project Name**: crossPayGoUser - **Description**: 用户端仓库 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-16 - **Last Updated**: 2026-02-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Cross Pay Go Admin
[![Go Version](https://img.shields.io/badge/Go-1.23+-00ADD8?style=flat&logo=go)](https://golang.org) [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/only-win-wisdom/cross-pay-go-admin/pulls) **跨境支付管理后台系统 - 企业级支付平台解决方案** [功能特性](#功能特性) • [快速开始](#快速开始) • [部署指南](#部署指南) • [API文档](#api文档) • [配置说明](#配置说明)
--- ## 📖 项目简介 Cross Pay Go Admin 是一个基于 Go 语言开发的企业级跨境支付管理后台系统,集成了多个主流支付平台(PhotonPay、InterlacePay、JuswayPay、HlPay),提供统一的支付管理、用户管理、交易监控、数据分析等功能。 ### 核心优势 - ✅ **多平台集成**:支持多个主流支付平台的统一接入和管理 - ✅ **高性能架构**:基于 Gin 框架,支持高并发场景,内置性能监控 - ✅ **完善的权限系统**:基于 RBAC 的多级权限管理 - ✅ **实时数据同步**:WebSocket 实时推送,ClickHouse 数据分析 - ✅ **企业级安全**:AES-256-GCM 加密、HMAC 签名、JWT 认证 - ✅ **灵活的缓存策略**:Redis + 内存双层缓存,可配置化管理 - ✅ **完善的监控体系**:性能监控、内存监控、慢查询分析 --- ## 🚀 功能特性 ### 核心功能模块 #### 1️⃣ 支付平台集成 - **PhotonPay** - 虚拟卡交易管理 - **InterlacePay** - 国际支付解决方案 - **JuswayPay** - 第三方支付集成 - **HlPay** - 快捷支付通道 #### 2️⃣ 管理功能 - 👤 **用户管理** - 用户信息、角色分配、权限控制 - 💳 **卡片管理** - 虚拟卡创建、额度管理、交易监控 - 💰 **交易管理** - 交易记录、对账结算、退款处理 - 📊 **数据分析** - 交易统计、用户分析、财务报表 - 🔔 **通知服务** - 邮件通知、短信通知、系统公告 - 📂 **导出功能** - 数据导出、报表生成、批量处理 #### 3️⃣ 系统功能 - 🔐 **安全认证** - JWT 认证、加密签名、IP 白名单 - 📝 **操作日志** - 用户操作记录、系统日志、审计追踪 - ⚙️ **配置管理** - 系统配置、参数管理、动态调整 - 🌍 **多时区支持** - 全球时区自动转换 - 🔄 **WebSocket** - 实时数据推送、状态更新 #### 4️⃣ 运维功能 - 📈 **性能监控** - CPU、内存、GC 监控 - 🐛 **pprof 分析** - 性能分析、内存分析 - 🚦 **限流控制** - 接口限流、防刷机制 - 🍯 **蜜罐防护** - 异常访问检测、自动拦截 --- ## 🛠 技术栈 ### 后端框架 - **Go 1.23+** - 主要编程语言 - **Gin** - Web 框架 - **GORM** - ORM 框架 ### 数据存储 - **MySQL** - 主数据库 - **Redis** - 缓存和会话存储 - **MongoDB** - 文档存储 - **ClickHouse** - 数据分析引擎 ### 第三方服务 - **JWT** - 身份认证 - **WebSocket** - 实时通信 - **阿里云 SMS** - 短信服务 - **邮件服务** - 163/QQ/Outlook/Zoho ### 开发工具 - **Air** - 热重载工具 - **pprof** - 性能分析 - **Git** - 版本控制 --- ## 📁 项目结构 ``` crosspayAdmin/ ├── src/ # 源代码目录 │ ├── config/ # 配置管理 │ │ ├── config.go # 配置加载 │ │ ├── honeypot_config.go # 蜜罐配置 │ │ ├── pprof_config.go # 性能分析配置 │ │ └── throttle_config.go # 限流配置 │ ├── controller/ # 控制器层 │ │ ├── mixing/ # 混合控制器 │ │ ├── platform/ # 平台控制器 │ │ └── system/ # 系统控制器 │ ├── database/ # 数据库连接 │ │ ├── database.go # MySQL 连接 │ │ ├── redis.go # Redis 连接 │ │ ├── mongodb.go # MongoDB 连接 │ │ └── clickhouse.go # ClickHouse 连接 │ ├── middleware/ # 中间件 │ │ ├── auth.go # 认证中间件 │ │ ├── permission.go # 权限中间件 │ │ ├── admin_throttle.go # 限流中间件 │ │ ├── honeypot.go # 蜜罐中间件 │ │ └── ... │ ├── models/ # 数据模型 │ ├── platform/ # 平台集成 │ │ ├── providers/ # 支付平台提供者 │ │ └── integration/ # 集成服务 │ ├── router/ # 路由定义 │ ├── service/ # 业务逻辑层 │ │ ├── analytics/ # 数据分析服务 │ │ ├── card/ # 卡片服务 │ │ ├── core/ # 核心服务 │ │ ├── notification/ # 通知服务 │ │ └── transaction/ # 交易服务 │ ├── utils/ # 工具函数 │ │ ├── auth/ # 认证工具 │ │ ├── cache/ # 缓存工具 │ │ ├── common/ # 通用工具 │ │ └── ... │ ├── logger/ # 日志管理 │ ├── errors/ # 错误处理 │ └── main.go # 程序入口 ├── config/ # 配置文件 │ ├── config.yaml # 开发环境配置 │ └── config.yaml.prod # 生产环境配置 ├── api_docs/ # API 文档 ├── examples/ # 示例代码 ├── scripts/ # 脚本文件 ├── logs/ # 日志文件 ├── dist/ # 编译输出 ├── air.toml # Air 配置文件 ├── build.sh # Linux/Mac 构建脚本 ├── build.bat # Windows 构建脚本 ├── go.mod # Go 依赖管理 └── README.md # 项目说明文档 ``` --- ## 🔧 环境要求 ### 基础环境 - **Go**: 1.23.0 或更高版本 - **MySQL**: 5.7 或更高版本(推荐 8.0+) - **Redis**: 5.0 或更高版本(推荐 6.0+) - **MongoDB**: 4.0 或更高版本(可选) - **ClickHouse**: 21.0 或更高版本(可选) ### 系统要求 - **操作系统**: Linux / macOS / Windows - **内存**: 最低 1GB RAM(推荐 2GB+) - **磁盘**: 最低 1GB 可用空间 - **网络**: 稳定的互联网连接 --- ## 📦 快速开始 ### 1. 克隆项目 ```bash git clone https://gitee.com/only-win-wisdom/cross-pay-go-admin.git cd crosspayAdmin ``` ### 2. 安装依赖 ```bash # 下载 Go 依赖 go mod download # 验证依赖 go mod verify ``` ### 3. 配置数据库 ```bash # 创建数据库 mysql -u root -p CREATE DATABASE cross_pay_go CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 导入数据表(如果有初始化脚本) # mysql -u root -p cross_pay_go < scripts/init.sql ``` ### 4. 配置文件 编辑 `config/config.yaml`: ```yaml # 数据库配置 database: host: "localhost" port: "3306" username: "root" password: "your_password" dbname: "cross_pay_go" # Redis 配置 redis: host: "127.0.0.1" port: "6379" password: "" db: 0 # JWT 配置 jwt: secret: "your-secret-key-here" expires_in: 24 ``` ### 5. 运行项目 #### 开发环境(使用 Air 热重载) ```bash # 安装 Air go install github.com/cosmtrek/air@latest # 启动开发服务器 air ``` #### 生产环境 ```bash # 构建项目 ./build.sh # Linux/Mac # 或 build.bat # Windows # 运行编译后的程序 ./dist/cross-pay-go_linux_amd64 # Linux ./dist/cross-pay-go_darwin_amd64 # macOS ./dist/cross-pay-go_windows_amd64.exe # Windows ``` ### 6. 访问系统 - **API 服务**: http://localhost:8082 - **pprof 性能分析**: http://localhost:6060/debug/pprof --- ## 🐳 Docker 部署 ### 创建 Dockerfile ```dockerfile FROM golang:1.23-alpine AS builder # 设置工作目录 WORKDIR /app # 复制依赖文件 COPY go.mod go.sum ./ RUN go mod download # 复制源代码 COPY . . # 编译 RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o cross-pay-go ./src/main.go # 运行阶段 FROM alpine:latest # 安装必要的工具 RUN apk --no-cache add ca-certificates tzdata WORKDIR /root/ # 复制编译好的程序 COPY --from=builder /app/cross-pay-go . COPY --from=builder /app/config ./config # 暴露端口 EXPOSE 8082 # 运行 CMD ["./cross-pay-go"] ``` ### 使用 Docker Compose 创建 `docker-compose.yml`: ```yaml version: '3.8' services: app: build: . ports: - "8082:8082" environment: - APP_ENV=production volumes: - ./config:/root/config - ./logs:/root/logs depends_on: - mysql - redis restart: unless-stopped mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: your_password MYSQL_DATABASE: cross_pay_go volumes: - mysql_data:/var/lib/mysql ports: - "3306:3306" redis: image: redis:6-alpine ports: - "6379:6379" volumes: - redis_data:/data volumes: mysql_data: redis_data: ``` 运行: ```bash docker-compose up -d ``` --- ## 🌐 生产环境部署 ### Linux 服务器部署(推荐) #### 1. 准备服务器 ```bash # 更新系统 sudo apt update && sudo apt upgrade -y # 安装必要的工具 sudo apt install -y git curl wget ``` #### 2. 安装 Go 环境 ```bash # 下载 Go 1.23 wget https://go.dev/dl/go1.23.0.linux-amd64.tar.gz # 解压 sudo rm -rf /usr/local/go sudo tar -C /usr/local -xzf go1.23.0.linux-amd64.tar.gz # 设置环境变量 echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc source ~/.bashrc # 验证安装 go version ``` #### 3. 部署应用 ```bash # 克隆项目 git clone https://gitee.com/only-win-wisdom/cross-pay-go-admin.git cd crosspayAdmin # 下载依赖 go mod download # 配置生产环境配置文件 cp config/config.yaml config/config.yaml.prod nano config/config.yaml.prod # 编辑配置 # 构建应用 ./build.sh # 创建日志目录 mkdir -p /var/log/cross-pay-go ``` #### 4. 使用 Systemd 管理服务 创建服务文件 `/etc/systemd/system/cross-pay-go.service`: ```ini [Unit] Description=Cross Pay Go Admin Service After=network.target mysql.service redis.service [Service] Type=simple User=www-data Group=www-data WorkingDirectory=/var/www/crosspayAdmin ExecStart=/var/www/crosspayAdmin/dist/cross-pay-go_linux_amd64 Restart=always RestartSec=10 Environment="APP_ENV=production" # 日志 StandardOutput=append:/var/log/cross-pay-go/app.log StandardError=append:/var/log/cross-pay-go/error.log # 安全设置 NoNewPrivileges=true PrivateTmp=true [Install] WantedBy=multi-user.target ``` 管理服务: ```bash # 重新加载 systemd sudo systemctl daemon-reload # 启动服务 sudo systemctl start cross-pay-go # 设置开机自启 sudo systemctl enable cross-pay-go # 查看状态 sudo systemctl status cross-pay-go # 查看日志 sudo journalctl -u cross-pay-go -f ``` #### 5. 配置 Nginx 反向代理 安装 Nginx: ```bash sudo apt install -y nginx ``` 创建 Nginx 配置文件 `/etc/nginx/sites-available/cross-pay-go`: ```nginx server { listen 80; server_name your-domain.com; # 日志 access_log /var/log/nginx/cross-pay-go-access.log; error_log /var/log/nginx/cross-pay-go-error.log; # 代理到 Go 应用 location / { proxy_pass http://127.0.0.1:8082; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; # 超时设置 proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; } # WebSocket 支持 location /ws { proxy_pass http://127.0.0.1:8082; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` 启用配置: ```bash # 创建软链接 sudo ln -s /etc/nginx/sites-available/cross-pay-go /etc/nginx/sites-enabled/ # 测试配置 sudo nginx -t # 重启 Nginx sudo systemctl restart nginx ``` #### 6. 配置 SSL(推荐) 使用 Let's Encrypt 免费 SSL 证书: ```bash # 安装 Certbot sudo apt install -y certbot python3-certbot-nginx # 获取证书 sudo certbot --nginx -d your-domain.com # 自动续期 sudo certbot renew --dry-run ``` --- ## ⚙️ 配置说明 ### 主要配置项 #### 服务器配置 ```yaml server: port: 8082 # 服务端口 mode: "release" # 运行模式: debug/release ``` #### JWT 配置 ```yaml jwt: secret: "your-secret-key-here" # JWT 密钥(必须修改) expires_in: 24 # 过期时间(小时) ``` #### 数据库配置 ```yaml database: host: "localhost" port: "3306" username: "root" password: "your_password" dbname: "cross_pay_go" max_open_conns: 20 # 最大连接数 max_idle_conns: 5 # 最大空闲连接数 ``` #### Redis 配置 ```yaml redis: host: "127.0.0.1" port: "6379" password: "" db: 0 pool_size: 5 # 连接池大小 ``` #### 支付平台配置 ```yaml # PhotonPay 配置 photonpay: app_id: "your_app_id" app_secret: "your_app_secret" gateway_url: "https://api.photonpay.com" # InterlacePay 配置 interlacepay: client_id: "your_client_id" client_secret: "your_client_secret" gateway_url: "https://api.interlace.money" ``` #### 安全配置 ```yaml # 地理位置限制 geo_restriction: enabled: true allowed_countries: - "CN" - "US" - "VN" # 蜜罐配置 honeypot: enabled: true max_login_attempts_per_hour: 15 ``` #### 性能优化配置 ```yaml # 缓存配置 cache: enabled: true expiration_seconds: 300 enable_redis_cache: true enable_memory_cache: true # 监控配置 monitoring: mode: "unified" # unified/basic/disabled unified: enabled: true check_interval: 60 ``` --- ## 📚 API 文档 API 文档位于 `api_docs/` 目录,包含以下模块: - [管理员登录](api_docs/管理员登录.md) - [用户管理](api_docs/用户管理-[通用]用户管理.md) - [角色管理](api_docs/角色管理.md) - [权限管理](api_docs/权限管理.md) - [交易管理](api_docs/转账管理.md) - [公告管理](api_docs/公告管理.md) - [导出数据](api_docs/导出数据.md) - [日志管理](api_docs/日志相关.md) ### 认证方式 系统支持两种认证方式: #### 1. JWT Token 认证 ```bash curl -X GET "http://localhost:8082/api/v1/users" \ -H "Authorization: Bearer YOUR_JWT_TOKEN" ``` #### 2. 加密认证(推荐) 参考 `examples/` 目录中的示例代码: - Go: [generate_encrypted_auth.go](examples/generate_encrypted_auth.go) - Java: [GenerateEncryptedAuth.java](examples/GenerateEncryptedAuth.java) - JavaScript: [generate_encrypted_auth.js](examples/generate_encrypted_auth.js) - Python: [generate_encrypted_auth.py](examples/generate_encrypted_auth.py) --- ## 🔒 安全最佳实践 ### 1. 密钥管理 ```bash # 生成强密钥 openssl rand -base64 32 # 配置环境变量(推荐) export JWT_SECRET="your-generated-secret" export DB_PASSWORD="your-db-password" ``` ### 2. 数据库安全 - 使用强密码 - 限制远程访问 - 定期备份数据 - 使用 SSL 连接 ### 3. Redis 安全 ```bash # 设置密码 requirepass your_redis_password # 禁用危险命令 rename-command FLUSHDB "" rename-command FLUSHALL "" ``` ### 4. 防火墙配置 ```bash # 仅允许必要端口 sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow 8082/tcp # 仅在需要时 sudo ufw enable ``` --- ## 📊 监控和性能优化 ### 1. pprof 性能分析 访问 `http://localhost:6060/debug/pprof/` 查看: - CPU 分析:`/debug/pprof/profile` - 内存分析:`/debug/pprof/heap` - Goroutine 分析:`/debug/pprof/goroutine` ### 2. 日志查看 ```bash # 查看应用日志 tail -f logs/app-2025-10-13.log # 查看错误日志 grep "ERROR" logs/app-2025-10-13.log ``` ### 3. 性能优化建议 - **数据库优化**:使用索引、优化慢查询 - **缓存策略**:合理配置 Redis 和内存缓存 - **连接池**:调整数据库和 Redis 连接池大小 - **GC 优化**:监控 GC 频率,调整内存限制 --- ## 🐛 常见问题 ### Q1: 启动时提示 "Failed to initialize database" **解决方案**: 1. 检查数据库是否运行:`sudo systemctl status mysql` 2. 验证数据库配置:`config/config.yaml` 3. 确认数据库已创建:`CREATE DATABASE cross_pay_go;` ### Q2: Redis 连接失败 **解决方案**: 1. 检查 Redis 是否运行:`redis-cli ping` 2. 验证 Redis 配置:`config/config.yaml` 3. 检查防火墙规则 ### Q3: 编译失败 **解决方案**: ```bash # 清理缓存 go clean -modcache # 重新下载依赖 go mod download # 更新依赖 go get -u ./... ``` ### Q4: 内存占用过高 **解决方案**: 1. 调整 GC 参数:`debug.SetGCPercent(80)` 2. 减少缓存大小:修改 `config.yaml` 中的缓存配置 3. 使用 pprof 分析内存泄漏 --- ## 🔄 版本更新 ### 从 Git 拉取更新 ```bash # 拉取最新代码 git pull origin master # 更新依赖 go mod download # 重新编译 ./build.sh # 重启服务 sudo systemctl restart cross-pay-go ``` ### 数据库迁移 如果有数据库结构变更,运行迁移脚本: ```bash mysql -u root -p cross_pay_go < scripts/migrations/xxx.sql ``` --- ## 🤝 贡献指南 我们欢迎任何形式的贡献! ### 如何贡献 1. Fork 本仓库 2. 创建特性分支:`git checkout -b feature/AmazingFeature` 3. 提交更改:`git commit -m 'Add some AmazingFeature'` 4. 推送到分支:`git push origin feature/AmazingFeature` 5. 提交 Pull Request ### 代码规范 - 遵循 Go 官方代码规范 - 使用 `go fmt` 格式化代码 - 编写单元测试 - 添加必要的注释 --- ## 📝 开发规划 - [ ] 支持更多支付平台 - [ ] 增加前端管理界面 - [ ] 实现分布式部署 - [ ] 添加更多数据分析功能 - [ ] 国际化支持 - [ ] API 文档自动生成 - [ ] 单元测试覆盖率提升 --- ## 📄 许可证 本项目基于 MIT 许可证开源 - 详见 [LICENSE](LICENSE) 文件 --- ## 📞 联系我们 - **项目主页**: https://gitee.com/only-win-wisdom/cross-pay-go-admin - **问题反馈**: https://gitee.com/only-win-wisdom/cross-pay-go-admin/issues - **邮箱**: support@example.com --- ## 🙏 致谢 感谢以下开源项目: - [Gin](https://github.com/gin-gonic/gin) - Web 框架 - [GORM](https://gorm.io/) - ORM 库 - [Redis](https://redis.io/) - 缓存数据库 - [ClickHouse](https://clickhouse.com/) - 数据分析引擎 - [Air](https://github.com/cosmtrek/air) - 热重载工具 ---
**⭐ 如果这个项目对您有帮助,请给我们一个 Star!⭐** Made with ❤️ by Cross Pay Team