一个基于 Go 语言开发的现代化加密货币支付网关系统,支持多种数字货币支付,提供完整的订单管理和自动化支付验证功能。
本项目基于原 EPUSDT 项目进行第二次重写,添加了新的功能,支持了新的支付方式,并且优化了代码结构,提高了性能。
原项目地址:https://github.com/assimon/epusdt 首次二开项目地址:https://github.com/wangegou/UPAY
感谢原作者 assimon,因为 epusdt 项目,我才发现 go 这个语言,才会去学习 go 开发。
- 多币种支持: 支持 USDT-TRC20、TRX、USDT-Polygon、USDT-BSC 、USDT-ERC20 、USDT-ArbitrumOne、USDC-ERC20、USDC-Polygon、USDC-BSC、USDC-ArbitrumOne 等主流数字货币
- 自动化验证: 实时监控区块链交易,自动验证支付状态
- 管理后台: 完整的 Web 管理界面,支持订单管理、用户管理、钱包配置
- API 接口: RESTful API 设计,易于集成到现有系统
- 安全可靠: MD5 签名验证,JWT 认证,确保交易安全
- 实时通知: 支持 Telegram、Bark 等多种通知方式
- 高性能: 基于 Gin 框架,支持高并发处理
- 补单功能:支持手动补单
- 钱包轮询: 真正支持自动轮询每笔交易钱包分配
- Go 1.24.4 或更高版本【二开推荐】
- SQLite 数据库
- Redis
下载编译后的文件直接启动即可
YouTube:https://youtu.be/-jsk6_KKUy4
反向代理端口设置http://127.0.0.1:8090
尝鲜预览 UPAY Pro 预览
-
主页: 你的网站域名
-
初始账号密码:在日志文件中,直接查看即可,保存后可以删除日志记录
独角数卡插件: 参考 独角数卡插件对接文档
异次元发卡: 参考 异次元发卡插件对接文档
萌次元发卡: 参考 萌次元发卡插件对接文档
v2boardpro 和 Xboard: 参考 v2boardpro 插件对接文档
易支付:参考 易支付插件对接文档
WHMCS 插件: 参考 WHMCS 插件对接文档 @Jason_0o 协助开发
WHMCS 开心版:WHMCS 开心版
智简魔方 插件:参考 智简魔方帮助文档
魔方开心版: 魔方开心版 GitHub 地址
- tronscan: https://tronscan.org/
- TronGrid: https://www.trongrid.io/
- etherscan: https://etherscan.io/
amd64 架构的机器,请使用以下命令拉取镜像:
docker run -d \
--name upay_pro \
-p 8090:8090 \
-v upay_logs:/app/logs \
-v upay_db:/app/DBS \
--restart always \
wangergou111/upay:latest
arm64 架构的机器,请使用以下命令拉取镜像:
docker run -d \
--name upay_pro \
-p 8090:8090 \
-v upay_logs:/app/logs \
-v upay_db:/app/DBS \
--restart always \
wangergou111/upay:latest-arm64
默认日志挂载路径为:
/var/lib/docker/volumes/upay_logs/\_data
默认数据库挂载路径为:
/var/lib/docker/volumes/upay_db/\_data
反向代理设置:http://127.0.0.1:8090
docker pull wangergou111/upay:latest
- 停止容器
- 删除容器
- 删除镜像
- 拉取最新镜像
- 启动容器 关于数据: 1 、因为之前你的日志和数据库是以卷方式挂载的,所以更新镜像后,数据不会丢失。 2 、如果你之前是自定义挂载的,请重新挂载即可
欢迎反馈问题,请在 GitHub 上提交问题,或者在项目中提交 PR。
电报:https://t.me/hellokvm 群组:https://t.me/UPAY_BUG 邮箱:8888@iosapp.icu
POST /api/create_order
Content-Type: application/json
{
"type": "USDT-TRC20",
"order_id": "ORDER123456",
"amount": 100.0,
"notify_url": "https://example.com/notify",
"redirect_url": "https://example.com/return",
"signature": "calculated_md5_signature"
}
GET /pay/check-status/{trade_id}
GET /pay/checkout-counter/{trade_id}
详细的 API 文档请参考 支付接口 API 文档.md
- USDT-TRC20: 基于 TRON 网络的 USDT
- TRX: TRON 原生代币
- USDT-Polygon: 基于 Polygon 网络的 USDT
- USDT-BSC: 基于 BSC 网络的 USDT
- USDT-ERC20: 基于 ERC20 网络的 USDT
- USDT-ArbitrumOne: 基于 ArbitrumOne 网络的 USDT
- USDC-ERC20: 基于 ERC20 网络的 USDC
- USDC-Polygon: 基于 Polygon 网络的 USDC
- USDC-BSC: 基于 BSC 网络的 USDC
- USDC-ArbitrumOne: 基于 ArbitrumOne 网络的 USDC
在管理后台中配置各币种的收款钱包地址和汇率信息。
支持以下通知方式:
- Telegram Bot 通知
- Bark 推送通知
upay_pro/
├── main.go # 程序入口
├── web/ # Web 服务和路由
│ ├── web.go # 主要路由定义
│ └── function.go # 业务逻辑函数
├── db/ # 数据库相关
│ ├── sdb/ # SQLite 数据库操作
│ └── rdb/ # Redis 数据库操作
├── cron/ # 定时任务
│ └── cron.go # 支付状态检查任务
├── USDT_Polygon/ # Polygon 网络支付处理
├── tron/ # TRON 网络支付处理
├── trx/ # TRX 支付处理
├── notification/ # 通知服务
│ ├── telegram.go # Telegram 通知
│ └── bark.go # Bark 通知
├── dto/ # 数据传输对象
├── mylog/ # 日志服务
├── mq/ # 消息队列
└── static/ # 静态文件
├── admin.html # 管理后台页面
├── index.html # 主页
├── login.html # 登录页面
└── pay.html # 支付页面
- 签名验证: 所有 API 请求都需要 MD5 签名验证
- JWT 认证: 管理后台使用 JWT 令牌认证
- 参数验证: 严格的输入参数验证
- HTTPS 支持: 生产环境建议使用 HTTPS
- 结构化日志: 使用 Zap 日志库,支持日志轮转
- 订单监控: 实时监控订单状态变化
- 性能监控: 支持请求耗时和错误率监控
系统包含以下定时任务:
- 支付检查: 每 5 秒检查一次未支付订单的区块链状态
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
如果您在使用过程中遇到问题,请:
- 查看 Issues 中是否有类似问题
- 创建新的 Issue 描述您的问题
- 提供详细的错误信息和复现步骤
感谢以下开源项目:
注意: 本项目仅供学习和研究使用,请确保在合法合规的前提下使用本系统。