feat(1.0):调整为实时获取 access_token
This commit is contained in:
parent
23ce0e6982
commit
2e8eb69312
@ -10,6 +10,7 @@ import (
|
||||
"mini-chat/internal/pkg/miniprogram"
|
||||
"mini-chat/internal/pkg/validation"
|
||||
|
||||
"go.uber.org/zap"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
@ -132,33 +133,50 @@ func (h *handler) SendSubscribeMessage() core.HandlerFunc {
|
||||
return
|
||||
}
|
||||
|
||||
// 发送模版消息
|
||||
accessToken, err := h.servicesMiniProgram.GetAccessToken(req.AppID, req.AppSecret, ctx)
|
||||
if err != nil {
|
||||
h.logger.Error(fmt.Sprintf("获取access_token失败: %s", err.Error()))
|
||||
res.Success = false
|
||||
res.Message = fmt.Sprintf("获取access_token失败: %s", err.Error())
|
||||
} else {
|
||||
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 = "您有一条新的消息..."
|
||||
// 调整为实时获取
|
||||
accessTokenResponse := new(miniprogram.AccessTokenResponse)
|
||||
if err := miniprogram.GetAccessToken(req.AppID, req.AppSecret, accessTokenResponse); err != nil {
|
||||
h.logger.Error("GetAccessToken failed", zap.Error(err), zap.String("app_id", req.AppID), zap.String("app_secret", req.AppSecret))
|
||||
ctx.AbortWithError(core.Error(
|
||||
http.StatusBadRequest,
|
||||
code.ParamBindError,
|
||||
fmt.Sprintf("获取 access_token 失败: %s,请稍后重试", err.Error()),
|
||||
))
|
||||
return
|
||||
}
|
||||
|
||||
sendSubscribeMessageRes := new(miniprogram.SendSubscribeMessageResponse)
|
||||
err = miniprogram.SendSubscribeMessage(accessToken, sendSubscribeMessageReq, sendSubscribeMessageRes)
|
||||
if err != nil {
|
||||
res.Success = false
|
||||
res.Message = "发送订阅消息失败" + err.Error()
|
||||
h.logger.Error(fmt.Sprintf("发送模版消息失败: %s", err.Error()))
|
||||
} else {
|
||||
res.Success = true
|
||||
res.Message = "订阅消息发送成功"
|
||||
}
|
||||
if accessTokenResponse.AccessToken == "" {
|
||||
ctx.AbortWithError(core.Error(
|
||||
http.StatusBadRequest,
|
||||
code.ParamBindError,
|
||||
"未获得到 access_token,请稍后重试",
|
||||
))
|
||||
return
|
||||
}
|
||||
|
||||
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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user