feat(1.0):调整为实时获取 access_token

This commit is contained in:
summer 2025-11-05 14:48:39 +08:00
parent 23ce0e6982
commit 2e8eb69312

View File

@ -10,6 +10,7 @@ import (
"mini-chat/internal/pkg/miniprogram" "mini-chat/internal/pkg/miniprogram"
"mini-chat/internal/pkg/validation" "mini-chat/internal/pkg/validation"
"go.uber.org/zap"
"gorm.io/gorm" "gorm.io/gorm"
) )
@ -132,13 +133,27 @@ func (h *handler) SendSubscribeMessage() core.HandlerFunc {
return return
} }
// 发送模版消息 // 调整为实时获取
accessToken, err := h.servicesMiniProgram.GetAccessToken(req.AppID, req.AppSecret, ctx) accessTokenResponse := new(miniprogram.AccessTokenResponse)
if err != nil { if err := miniprogram.GetAccessToken(req.AppID, req.AppSecret, accessTokenResponse); err != nil {
h.logger.Error(fmt.Sprintf("获取access_token失败: %s", err.Error())) h.logger.Error("GetAccessToken failed", zap.Error(err), zap.String("app_id", req.AppID), zap.String("app_secret", req.AppSecret))
res.Success = false ctx.AbortWithError(core.Error(
res.Message = fmt.Sprintf("获取access_token失败: %s", err.Error()) http.StatusBadRequest,
} else { code.ParamBindError,
fmt.Sprintf("获取 access_token 失败: %s请稍后重试", err.Error()),
))
return
}
if accessTokenResponse.AccessToken == "" {
ctx.AbortWithError(core.Error(
http.StatusBadRequest,
code.ParamBindError,
"未获得到 access_token请稍后重试",
))
return
}
sendSubscribeMessageReq := new(miniprogram.SendSubscribeMessageRequest) sendSubscribeMessageReq := new(miniprogram.SendSubscribeMessageRequest)
sendSubscribeMessageReq.Touser = req.Touser sendSubscribeMessageReq.Touser = req.Touser
sendSubscribeMessageReq.TemplateID = req.TemplateID sendSubscribeMessageReq.TemplateID = req.TemplateID
@ -150,16 +165,19 @@ func (h *handler) SendSubscribeMessage() core.HandlerFunc {
sendSubscribeMessageReq.Data.Thing4.Value = "您有一条新的消息..." sendSubscribeMessageReq.Data.Thing4.Value = "您有一条新的消息..."
sendSubscribeMessageRes := new(miniprogram.SendSubscribeMessageResponse) sendSubscribeMessageRes := new(miniprogram.SendSubscribeMessageResponse)
err = miniprogram.SendSubscribeMessage(accessToken, sendSubscribeMessageReq, sendSubscribeMessageRes) err := miniprogram.SendSubscribeMessage(accessTokenResponse.AccessToken, sendSubscribeMessageReq, sendSubscribeMessageRes)
if err != nil { if err != nil {
res.Success = false res.Success = false
res.Message = "发送订阅消息失败" + err.Error() res.Message = "发送订阅消息失败" + err.Error()
h.logger.Error(fmt.Sprintf("发送模版消息失败: %s", err.Error())) h.logger.Error(fmt.Sprintf("发送模版消息失败: %s", err.Error()),
zap.String("app_id", req.AppID),
zap.String("app_secret", req.AppSecret),
zap.String("template_id", req.TemplateID),
)
} else { } else {
res.Success = true res.Success = true
res.Message = "订阅消息发送成功" res.Message = "订阅消息发送成功"
} }
}
ctx.Payload(res) ctx.Payload(res)
} }