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,33 +133,50 @@ 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,
sendSubscribeMessageReq := new(miniprogram.SendSubscribeMessageRequest) fmt.Sprintf("获取 access_token 失败: %s请稍后重试", err.Error()),
sendSubscribeMessageReq.Touser = req.Touser ))
sendSubscribeMessageReq.TemplateID = req.TemplateID return
sendSubscribeMessageReq.Page = "pages/index/detail?url=1" }
sendSubscribeMessageReq.MiniprogramState = "developer" // 需要改成正式版 目前是体验版 跳转小程序类型developer 为开发版trial为体验版formal为正式版默认为正式版
sendSubscribeMessageReq.Lang = "zh_CN"
sendSubscribeMessageReq.Data.Thing1.Value = "留言提醒"
sendSubscribeMessageReq.Data.Time2.Value = time.Now().Format("2006-01-02 15:04:05")
sendSubscribeMessageReq.Data.Thing4.Value = "您有一条新的消息..."
sendSubscribeMessageRes := new(miniprogram.SendSubscribeMessageResponse) if accessTokenResponse.AccessToken == "" {
err = miniprogram.SendSubscribeMessage(accessToken, sendSubscribeMessageReq, sendSubscribeMessageRes) ctx.AbortWithError(core.Error(
if err != nil { http.StatusBadRequest,
res.Success = false code.ParamBindError,
res.Message = "发送订阅消息失败" + err.Error() "未获得到 access_token请稍后重试",
h.logger.Error(fmt.Sprintf("发送模版消息失败: %s", err.Error())) ))
} else { return
res.Success = true }
res.Message = "订阅消息发送成功"
} sendSubscribeMessageReq := new(miniprogram.SendSubscribeMessageRequest)
sendSubscribeMessageReq.Touser = req.Touser
sendSubscribeMessageReq.TemplateID = req.TemplateID
sendSubscribeMessageReq.Page = "pages/index/detail?url=1"
sendSubscribeMessageReq.MiniprogramState = "developer" // 需要改成正式版 目前是体验版 跳转小程序类型developer 为开发版trial为体验版formal为正式版默认为正式版
sendSubscribeMessageReq.Lang = "zh_CN"
sendSubscribeMessageReq.Data.Thing1.Value = "留言提醒"
sendSubscribeMessageReq.Data.Time2.Value = time.Now().Format("2006-01-02 15:04:05")
sendSubscribeMessageReq.Data.Thing4.Value = "您有一条新的消息..."
sendSubscribeMessageRes := new(miniprogram.SendSubscribeMessageResponse)
err := miniprogram.SendSubscribeMessage(accessTokenResponse.AccessToken, sendSubscribeMessageReq, sendSubscribeMessageRes)
if err != nil {
res.Success = false
res.Message = "发送订阅消息失败" + 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 {
res.Success = true
res.Message = "订阅消息发送成功"
} }
ctx.Payload(res) ctx.Payload(res)