This commit is contained in:
孟帅
2023-05-10 23:54:50 +08:00
parent bbe655a4d8
commit 49a96750bf
314 changed files with 15138 additions and 6244 deletions

View File

@@ -18,6 +18,7 @@
- [控制台](sys-console.md)
- 请求中间件和WebHook
- [权限控制](sys-auth.md)
- [支付网关](sys-payment.md)
- [数据库](sys-db.md)
- [代码生成](sys-code.md)
- 定时任务

View File

@@ -15,10 +15,10 @@
5. 命令行运行 `yarn -v` 若控制台输出版本号则前端环境搭建成功
### 后端环境
1. 下载golang安装 版本号需>=1.18
1. 下载golang安装 版本号需>=1.19
2. 国际: https://golang.org/dl/
3. 国内: https://golang.google.cn/dl/
4. 命令行运行 go 若控制台输出各类提示命令 则安装成功 输入 `go version` 确认版本大于1.18
4. 命令行运行 go 若控制台输出各类提示命令 则安装成功 输入 `go version` 确认版本大于1.19
5. 开发工具推荐 [Goland](https://www.jetbrains.com/go/)
### 使用说明
@@ -26,6 +26,6 @@
> 需要本地具有 git node golang 环境
- node版本 >= 16.0.0
- golang版本 >= v1.18
- golang版本 >= v1.19
- mysql 引擎需要是 innoDB
- IDE推荐Goland

View File

@@ -8,8 +8,8 @@
### 环境要求
- node版本 >= v16.0.0
- golang版本 >= v1.18
- goframe版本 >=v2.3.2
- golang版本 >= v1.19
- goframe版本 >=v2.4.1
- mysql版本 >=5.7
> 必须先看[环境搭建文档](start-environment.md),如果安装遇到问题务必先查看[常见问题文档](start-issue.md)

View File

@@ -3,8 +3,8 @@
#### 说明环境情况
- 平台: windows/linux
- 软件与版本golang 1.18, Mysql 5.7 ...
- 系统版本hotgo 2.1.4
- 软件与版本golang 1.19, Mysql 5.7 ...
- 系统版本hotgo 2.6.2
#### 你做了什么?

View File

@@ -11,6 +11,23 @@
> 如果升级(覆盖)代码后打开会出现 sql 报错, 请检查更新的数据库格式或自行调整
### v2.6.7
updated 2023.05.11
- 增加增加支付网关集成支付宝、微信支付、QQ支付可通过后台直接配置参数
- 增加:增加资金管理模块,包含在线充值、申请提现、资金变动明细功能
- 增加增加redis延迟队列
- 增加tcp服务增加rpc协议通讯支持
- 增加通过微信访问后台自动获取openid后续微信相关业务使用
- 优化gf版本升级到v2.4.1
- 优化优化CURD代码生成单表列表
- 优化:优化菜单权限路由,解决偶尔修改权限不能实时生效的情况
- 优化:优化后台导出功能搜索参数无效问题
- 优化将定时任务拆分成可独立部署的程序通过tcp长连接方式与后台交互
- 修复:修复相同文件多次上传页面无响应问题
- 修复:修复新用户不更新活跃时间问题
- 修复:修复本地缓存当缓存不存在时的异常错误问题
- 修复:修复访问日志偶尔出现无法记录问题
### v2.5.3
updated 2023.04.10

View File

@@ -0,0 +1,101 @@
## 支付网关
目录
- 介绍
- 一个简单的支付流程
- 支付配置
- 创建支付订单
- 注册支付回调
- 订单退款
- 单笔转账(待更新)
- 其他
### 介绍
> 在web应用开发中支付功能可以做为不可或缺的一部分HotGo提供了相对通用的支付网关目前已支持支付宝、微信支付、QQ支付包含创建支付订单、支付回调、订单退款等功能开发者几乎只需关注订单业务处理即可。
#### 一个简单的支付流程
```mermaid
graph TD
A(用户下单) --> B(创建订单<br> 创建成功后,将订单支付信息提交到支付网关处理)
B -->|网关返回失败| H(提示错误)
B -->|网关返回成功| G(拿到支付链接,用户侧跳转支付页面)
G -->|支付完成| C(支付平台通知支付网关<br> 支付网关进行验签和效验支付处理状态) -->|验证通过,回调订单业务| E(订单更新状态,发放业务产品)
G -->|支付取消| D(订单支付超时关闭)
```
### 支付配置
> 请到 系统设置 -> 配置管理 -> 支付配置 -> 找到你需要的支付方式,进行配置即可
### 创建支付订单
```go
package main
func main() {
// 创建支付网关订单
create, err := service.Pay().Create(ctx, payin.PayCreateInp{
Subject: "充值100元",
OrderSn: "唯一业务订单编号",
OrderGroup: "admin_order", // 订单分组,用于订单分类和绑定支付成功的回调方法
PayType: "wxpay", // 微信支付
TradeType: "scan", // 二维码扫码
PayAmount: "100", // 100元
})
}
```
### 注册支付回调
- 在文件`server/internal/global/pay.go` 加入你的业务订单分组回调方法,当订单支付成功验签通过后会自动进行回调,参考以下:
```go
package global
import (
"hotgo/internal/consts"
"hotgo/internal/library/payment"
"hotgo/internal/service"
)
// 注册支付成功回调方法
func payNotifyCall() {
payment.RegisterNotifyCall(consts.OrderGroupAdminOrder, service.AdminOrder().PayNotify) // 后台充值订单
// ...
}
```
### 订单退款
```go
package main
func main() {
refund, err := service.PayRefund().Refund(ctx, payin.PayRefundInp{
OrderSn: "唯一业务订单编号",
RefundMoney: "退款金额",
Reason: "买家申请退款原因",
Remark: "商家同意退款备注",
})
}
```
### 单笔转账(待更新)
### 其他
- 由于各个支付平台中交易方式较多如果目前已有的交易方式不满足你的支付场景需求请自行参考gopay文档对文件`server/internal/library/payment/payment.go`中的`PayClient`接口实现进行扩展
- gopay文档地址https://github.com/go-pay/gopay

View File

@@ -110,6 +110,31 @@ func test() {
```
延迟队列目前只有redis驱动支持:
```go
package main
import (
"fmt"
"hotgo/internal/consts"
"hotgo/internal/library/queue"
"hotgo/internal/model/entity"
)
func test() {
data := &entity.SysLog{
//...
}
// 延迟10秒
if err := queue.SendDelayMsg(consts.QueueLogTopic, data, 10); err != nil {
fmt.Printf("queue.Push err:%+v", err)
}
}
```
### 控制台
控制台用于处理队列消息,即消费者。