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/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)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user