# 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
[](https://golang.org)
[](LICENSE)
[](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