GoPay:Go 语言轻量级聚合支付网关系统,支持支付宝/微信支付
标签: Go / 支付系统 / 聚合支付 / 开源 / Gin / GORM
原文: 微信公众号「码农先森」https://mp.weixin.qq.com/s/SoE0aJPsqY7Iu3thtSpFBQ
GitHub: https://github.com/mageg-x/gopay
核心亮点
GoPay —— 基于 Go 语言开发的轻量级聚合支付网关系统,支持支付宝、微信支付,提供完整的商户管理、订单管理、结算转账等功能。
技术栈:Go + Gin + GORM + SQLite + Vue 3 + Element Plus,MIT 开源。
功能全览
支付功能
| 功能 | 说明 |
|---|---|
| 多支付方式 | 支付宝(网页/手机网站/扫码/APP/JSAPI);微信(扫码/JSAPI/H5/小程序/APP) |
| 通道轮询 | 多通道负载均衡,按权重自动轮询分配 |
| 智能路由 | 根据设备类型(PC/移动端/APP)自动选择最优支付方式 |
| 收银台模式 | /cashier/user/:uid 固定商户收银路径,自动商户兜底 |
| 异步回调 | 支付结果异步通知,自动重试机制 |
| 订单退款 | 支持全额/部分退款 |
商户系统
- 商户注册:邮箱/手机号注册,邀请码机制
- 订单管理:订单查询、状态追踪、手动触发通知
- 资金管理:余额充值、资金明细、结算申请
- API 接口:完整的支付 API,支持签名验证
- 邀请返佣:邀请用户注册获得交易返佣
管理后台
- 商户管理:商户列表、状态控制、余额调整
- 订单管理:订单查询、状态管理、数据导出
- 通道管理:支付通道配置、费率设置、状态控制
- 用户组管理:分组管理、权限配置、通道分配
- 风控管理:IP/用户黑名单、商品名称过滤、每日限额
- 结算管理:结算审核、自动转账
- 转账管理:单笔/批量转账、转账查询
- 分账管理:分账接收人配置、自动分账
转账功能
- 多渠道转账:支付宝、微信
- 批量转账:支持批量导入
- 转账查询:实时查询状态
- 失败退款:转账失败自动退回余额
风控系统
| 风控项 | 说明 |
|---|---|
| 黑名单 | IP 黑名单、用户黑名单,支持时效设置 |
| 名称过滤 | 商品名称关键词过滤 |
| 限额控制 | IP/用户每日支付次数限制 |
| 金额限制 | 单笔最低/最高金额限制 |
插件系统
- 统一支付插件接口,支持自定义扩展
- 内置支付宝、微信插件
- 支持测试通道配置
技术架构
后端
- Go + Gin Web 框架
- GORM ORM
- SQLite 数据库(跨平台默认存储路径不同)
- Vue 3 + TypeScript + Element Plus + Tailwind CSS
跨平台构建
# Linux CLI
make build-linux
# Linux GUI(系统托盘)
make build-linux-gui
# Windows GUI(系统托盘)
make build-windows-gui
# macOS GUI(系统托盘)
make build-macos-gui
启动参数
| 参数 | 说明 | 默认值 |
|---|---|---|
-db | 数据库文件路径 | 平台默认路径 |
-host | 监听 IP | 0.0.0.0 |
-port | 监听端口 | 8080 |
-migrate | 执行数据库迁移 | false |
数据库存储路径
| 平台 | 路径 |
|---|---|
| Windows | %APPDATA%\gopay\gopay.db |
| macOS | ~/Library/Application Support/gopay/gopay.db |
| Linux | ~/.gopay/gopay.db |
快速开始
# 克隆项目
git clone https://github.com/mageg-x/gopay.git
cd gopay
# 构建前端
cd web && npm install && npm run build && cd ..
# 构建后端
cd server && go build -o gopay ./src
# 运行
./gopay -host 0.0.0.0 -port 8080
启动后访问 http://localhost:8080 即可进入系统。
收银体验入口:/cashier/user/10000
API 接口一览
支付与收银
| 接口 | 方法 | 说明 |
|---|---|---|
/api/pay/submit | POST | 提交支付 |
/api/pay/cashier_submit | POST | 收银台内部提交(同源) |
/api/pay/create | POST | 创建订单 |
/api/pay/query | GET/POST | 查询订单 |
/api/pay/refund | POST | 申请退款 |
/api/pay/types | GET | 获取可用支付方式 |
/api/pay/channels | GET | 获取可用支付通道 |
/api/pay/notify/:trade_no | POST | 支付回调 |
/api/pay/return/:trade_no | GET | 同步跳转 |
写在最后
GoPay 是一个功能完整的聚合支付网关,适合:
- 个人开发者搭建自己的支付接入门户
- 中小企业自建支付系统,避免第三方高抽成
- 学习研究支付系统架构与实现
如果你需要一个轻量、开源、完整的支付系统,GoPay 值得一试。
GitHub: https://github.com/mageg-x/gopay
License: MIT