This commit is contained in:
@@ -2,13 +2,13 @@ package api
|
||||
|
||||
// ApiGroup 微信集成API组
|
||||
type ApiGroup struct {
|
||||
WechatMiniApi WechatMiniApi // 微信小程序API
|
||||
MpUserApi MpUserApi // 公众号用户API
|
||||
MpMessageApi MpMessageApi // 公众号消息API
|
||||
MpAutoReplyApi MpAutoReplyApi // 公众号自动回复API
|
||||
MpMenuApi MpMenuApi // 公众号菜单API
|
||||
MpMaterialApi MpMaterialApi // 公众号素材API
|
||||
WechatWebhookApi WechatWebhookApi // 微信Webhook API
|
||||
MiniApi MiniApi // 微信小程序API
|
||||
MpUserApi MpUserApi // 公众号用户API
|
||||
MpMessageApi MpMessageApi // 公众号消息API
|
||||
MpAutoReplyApi MpAutoReplyApi // 公众号自动回复API
|
||||
MpMenuApi MpMenuApi // 公众号菜单API
|
||||
MpMaterialApi MpMaterialApi // 公众号素材API
|
||||
WebhookApi WebhookApi // 微信Webhook API
|
||||
}
|
||||
|
||||
// ApiGroupApp API组实例
|
||||
|
||||
+14
-14
@@ -12,9 +12,9 @@ import (
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type WechatMiniApi struct{}
|
||||
type MiniApi struct{}
|
||||
|
||||
var wechatMiniService = service.ServiceGroupApp.WechatMiniService
|
||||
var miniService = service.ServiceGroupApp.MiniService
|
||||
|
||||
// Login 小程序登录
|
||||
// @Tags WechatMini
|
||||
@@ -25,7 +25,7 @@ var wechatMiniService = service.ServiceGroupApp.WechatMiniService
|
||||
// @Param data body request.MiniLoginRequest true "登录参数"
|
||||
// @Success 200 {object} response.Response{data=response.MiniLoginResponse} "登录成功"
|
||||
// @Router /wechat/mini/login [post]
|
||||
func (w *WechatMiniApi) Login(c *gin.Context) {
|
||||
func (w *MiniApi) Login(c *gin.Context) {
|
||||
var req request.MiniLoginRequest
|
||||
err := c.ShouldBindJSON(&req)
|
||||
if err != nil {
|
||||
@@ -38,7 +38,7 @@ func (w *WechatMiniApi) Login(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
user, err := wechatMiniService.Code2Session(req.Code)
|
||||
user, err := miniService.Code2Session(req.Code)
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("小程序登录失败!", zap.Error(err))
|
||||
response.FailWithMessage("登录失败: "+err.Error(), c)
|
||||
@@ -64,14 +64,14 @@ func (w *WechatMiniApi) Login(c *gin.Context) {
|
||||
// @Param openid query string true "用户openid"
|
||||
// @Success 200 {object} response.Response{data=model.WechatMiniUser} "获取成功"
|
||||
// @Router /wechat/mini/userinfo [get]
|
||||
func (w *WechatMiniApi) GetUserInfo(c *gin.Context) {
|
||||
func (w *MiniApi) GetUserInfo(c *gin.Context) {
|
||||
openid := c.Query("openid")
|
||||
if openid == "" {
|
||||
response.FailWithMessage("openid不能为空", c)
|
||||
return
|
||||
}
|
||||
|
||||
user, err := wechatMiniService.GetUserInfo(openid)
|
||||
user, err := miniService.GetUserInfo(openid)
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("获取用户信息失败!", zap.Error(err))
|
||||
response.FailWithMessage("获取失败: "+err.Error(), c)
|
||||
@@ -90,7 +90,7 @@ func (w *WechatMiniApi) GetUserInfo(c *gin.Context) {
|
||||
// @Param data body request.UpdateUserInfoRequest true "用户信息"
|
||||
// @Success 200 {object} response.Response "更新成功"
|
||||
// @Router /wechat/mini/userinfo [put]
|
||||
func (w *WechatMiniApi) UpdateUserInfo(c *gin.Context) {
|
||||
func (w *MiniApi) UpdateUserInfo(c *gin.Context) {
|
||||
var req request.UpdateUserInfoRequest
|
||||
err := c.ShouldBindJSON(&req)
|
||||
if err != nil {
|
||||
@@ -103,7 +103,7 @@ func (w *WechatMiniApi) UpdateUserInfo(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
err = wechatMiniService.UpdateUserInfo(req.OpenID, req.UserInfo)
|
||||
err = miniService.UpdateUserInfo(req.OpenID, req.UserInfo)
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("更新用户信息失败!", zap.Error(err))
|
||||
response.FailWithMessage("更新失败: "+err.Error(), c)
|
||||
@@ -122,7 +122,7 @@ func (w *WechatMiniApi) UpdateUserInfo(c *gin.Context) {
|
||||
// @Param data body request.BindPhoneRequest true "绑定参数"
|
||||
// @Success 200 {object} response.Response{data=model.WechatMiniUser} "绑定成功"
|
||||
// @Router /wechat/mini/bind-phone [post]
|
||||
func (w *WechatMiniApi) BindPhone(c *gin.Context) {
|
||||
func (w *MiniApi) BindPhone(c *gin.Context) {
|
||||
var req request.BindPhoneRequest
|
||||
err := c.ShouldBindJSON(&req)
|
||||
if err != nil {
|
||||
@@ -135,7 +135,7 @@ func (w *WechatMiniApi) BindPhone(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
user, err := wechatMiniService.BindPhoneAndLinkUser(req.OpenID, req.Phone)
|
||||
user, err := miniService.BindPhoneAndLinkUser(req.OpenID, req.Phone)
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("绑定手机号失败!", zap.Error(err))
|
||||
response.FailWithMessage("绑定失败: "+err.Error(), c)
|
||||
@@ -155,7 +155,7 @@ func (w *WechatMiniApi) BindPhone(c *gin.Context) {
|
||||
// @Param pageSize query int false "每页数量"
|
||||
// @Success 200 {object} response.Response{data=response.PageResult} "获取成功"
|
||||
// @Router /wechat/mini/users [get]
|
||||
func (w *WechatMiniApi) GetUserList(c *gin.Context) {
|
||||
func (w *MiniApi) GetUserList(c *gin.Context) {
|
||||
page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
|
||||
pageSize, _ := strconv.Atoi(c.DefaultQuery("pageSize", "10"))
|
||||
|
||||
@@ -166,7 +166,7 @@ func (w *WechatMiniApi) GetUserList(c *gin.Context) {
|
||||
pageSize = 10
|
||||
}
|
||||
|
||||
users, total, err := wechatMiniService.GetUserList(page, pageSize)
|
||||
users, total, err := miniService.GetUserList(page, pageSize)
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("获取用户列表失败!", zap.Error(err))
|
||||
response.FailWithMessage("获取失败: "+err.Error(), c)
|
||||
@@ -190,14 +190,14 @@ func (w *WechatMiniApi) GetUserList(c *gin.Context) {
|
||||
// @Param unionid query string true "UnionID"
|
||||
// @Success 200 {object} response.Response{data=model.WechatMiniUser} "检查成功"
|
||||
// @Router /wechat/mini/check-unionid [get]
|
||||
func (w *WechatMiniApi) CheckUnionID(c *gin.Context) {
|
||||
func (w *MiniApi) CheckUnionID(c *gin.Context) {
|
||||
unionid := c.Query("unionid")
|
||||
if unionid == "" {
|
||||
response.FailWithMessage("unionid不能为空", c)
|
||||
return
|
||||
}
|
||||
|
||||
user, err := wechatMiniService.CheckUnionIDExists(unionid)
|
||||
user, err := miniService.CheckUnionIDExists(unionid)
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("检查UnionID失败!", zap.Error(err))
|
||||
response.FailWithMessage("检查失败: "+err.Error(), c)
|
||||
@@ -301,7 +301,7 @@ func (m *MpConfigApi) ValidateConfig(c *gin.Context) {
|
||||
}
|
||||
|
||||
// 使用微信公众号服务验证配置
|
||||
wechatMpService := service.ServiceGroupApp.WechatMpService
|
||||
wechatMpService := service.ServiceGroupApp.MpService
|
||||
err = wechatMpService.ValidateConfig(config)
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("配置连通性测试失败!", zap.Error(err))
|
||||
|
||||
+4
-4
@@ -16,7 +16,7 @@ import (
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type WechatWebhookApi struct{}
|
||||
type WebhookApi struct{}
|
||||
|
||||
var webhookMessageService = service.ServiceGroupApp.MpMessageService
|
||||
|
||||
@@ -32,7 +32,7 @@ var webhookMessageService = service.ServiceGroupApp.MpMessageService
|
||||
// @Param echostr query string false "随机字符串"
|
||||
// @Success 200 {string} string "success"
|
||||
// @Router /wechat/official/webhook [get,post]
|
||||
func (w *WechatWebhookApi) OfficialAccountWebhook(c *gin.Context) {
|
||||
func (w *WebhookApi) OfficialAccountWebhook(c *gin.Context) {
|
||||
startTime := time.Now()
|
||||
|
||||
// 获取参数
|
||||
@@ -133,7 +133,7 @@ func (w *WechatWebhookApi) OfficialAccountWebhook(c *gin.Context) {
|
||||
}
|
||||
|
||||
// verifySignature 验证微信签名
|
||||
func (w *WechatWebhookApi) verifySignature(signature, timestamp, nonce string) bool {
|
||||
func (w *WebhookApi) verifySignature(signature, timestamp, nonce string) bool {
|
||||
// 从数据库获取微信公众号配置
|
||||
var mpConfig model.MpConfig
|
||||
err := global.GVA_DB.Where("config_type = ?", model.ConfigTypeMP).First(&mpConfig).Error
|
||||
@@ -167,7 +167,7 @@ func (w *WechatWebhookApi) verifySignature(signature, timestamp, nonce string) b
|
||||
}
|
||||
|
||||
// saveWebhookLog 保存Webhook日志到数据库
|
||||
func (w *WechatWebhookApi) saveWebhookLog(log *model.MpWebhookLog) {
|
||||
func (w *WebhookApi) saveWebhookLog(log *model.MpWebhookLog) {
|
||||
if err := global.GVA_DB.Create(log).Error; err != nil {
|
||||
global.GVA_LOG.Error("保存Webhook日志失败", zap.Error(err))
|
||||
// 数据库记录失败不影响webhook正常响应
|
||||
Reference in New Issue
Block a user