fix: 优化企业微信回调处理和配置更新
This commit is contained in:
parent
f71018dd96
commit
2a567dde86
|
|
@ -159,7 +159,7 @@ dingtalk:
|
||||||
qywx:
|
qywx:
|
||||||
corp_id: "ww48151f694fb8ec67"
|
corp_id: "ww48151f694fb8ec67"
|
||||||
app_secret: "uYqtdwdtdH4Uv_P4is2AChuGzBCoB6cQDyRvpbW0Vmk"
|
app_secret: "uYqtdwdtdH4Uv_P4is2AChuGzBCoB6cQDyRvpbW0Vmk"
|
||||||
token: "Jdukry6"
|
token: "zJdukry6"
|
||||||
aes_key: "4VLH47qRGUogc2d3QLWuUhvJlk8Y0YuRjXzeBquBq8B"
|
aes_key: "4VLH47qRGUogc2d3QLWuUhvJlk8Y0YuRjXzeBquBq8B"
|
||||||
init_account: "les."
|
init_account: "les."
|
||||||
chat_id_len: 16
|
chat_id_len: 16
|
||||||
|
|
|
||||||
|
|
@ -152,15 +152,15 @@ dingtalk:
|
||||||
bbxt: 23
|
bbxt: 23
|
||||||
|
|
||||||
qywx:
|
qywx:
|
||||||
# corp_id: "ww48151f694fb8ec67"
|
corp_id: "ww48151f694fb8ec67"
|
||||||
# app_secret: "uYqtdwdtdH4Uv_P4is2AChuGzBCoB6cQDyRvpbW0Vmk"
|
|
||||||
# token: "uYqtdwdtdH4Uv_P4is2AChuGzBCoB6cQDyRvpbW0Vmk"
|
|
||||||
# aes_key: "4VLH47qRGUogc2d3QLWuUhvJlk8Y0YuRjXzeBquBq8B"
|
|
||||||
|
|
||||||
corp_id: "wwabfd0cec7171e769"
|
|
||||||
app_secret: "uYqtdwdtdH4Uv_P4is2AChuGzBCoB6cQDyRvpbW0Vmk"
|
app_secret: "uYqtdwdtdH4Uv_P4is2AChuGzBCoB6cQDyRvpbW0Vmk"
|
||||||
token: "gY1AGR3mjBhzy"
|
token: "zJdukry6"
|
||||||
aes_key: "g8VGfQEqluUhoKOlyjmmll8Q9C5tVFUTX5T2qkmI9Sv"
|
aes_key: "4VLH47qRGUogc2d3QLWuUhvJlk8Y0YuRjXzeBquBq8B"
|
||||||
|
#
|
||||||
|
# corp_id: "wx5823bf96d3bd56c7"
|
||||||
|
# token: "QDG6eK"
|
||||||
|
# aes_key: "jWmYm7qr5nMoAUwZRjGtBxmz3KA1tkAj3ykkR6q2B2C"
|
||||||
|
# app_secret: "uYqtdwdtdH4Uv_P4is2AChuGzBCoB6cQDyRvpbW0Vmk"
|
||||||
init_account: "les."
|
init_account: "les."
|
||||||
chat_id_len: 16
|
chat_id_len: 16
|
||||||
default_config_id: 1
|
default_config_id: 1
|
||||||
|
|
|
||||||
|
|
@ -129,7 +129,9 @@ func registerResponse(router fiber.Router) {
|
||||||
|
|
||||||
func registerCommon(c *fiber.Ctx, err error) error {
|
func registerCommon(c *fiber.Ctx, err error) error {
|
||||||
// 调用下一个中间件或路由处理函数
|
// 调用下一个中间件或路由处理函数
|
||||||
|
if c.Path() == "/api/v1/qywx/callback" {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
bsErr, ok := err.(*errors.BusinessErr)
|
bsErr, ok := err.(*errors.BusinessErr)
|
||||||
if !ok {
|
if !ok {
|
||||||
bsErr = errors.SystemError
|
bsErr = errors.SystemError
|
||||||
|
|
|
||||||
|
|
@ -332,14 +332,21 @@ func (s *CallbackService) handleBugOptimizationSubmitDone(ctx context.Context, t
|
||||||
return msg, nil
|
return msg, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CallbackService) QywxCallback(c *fiber.Ctx) error {
|
func (s *CallbackService) QywxCallback(c *fiber.Ctx) (err error) {
|
||||||
// 读取头
|
// 读取头
|
||||||
msgSignature := c.Query("msg_signature")
|
httpstr := string(c.Request().URI().QueryString())
|
||||||
timestamp := c.Query("timestamp")
|
|
||||||
nonce := c.Query("nonce")
|
start := strings.Index(httpstr, "msg_signature=")
|
||||||
echostr := c.Query("echostr")
|
start += len("msg_signature=")
|
||||||
|
var msgSignature string
|
||||||
|
next := getString(httpstr, "×tamp=", start, &msgSignature)
|
||||||
|
var timestamp string
|
||||||
|
next = getString(httpstr, "&nonce=", next, ×tamp)
|
||||||
|
var nonce string
|
||||||
|
next = getString(httpstr, "&echostr=", next, &nonce)
|
||||||
|
echostr := httpstr[next:len(httpstr)]
|
||||||
echostr, _ = url.QueryUnescape(echostr)
|
echostr, _ = url.QueryUnescape(echostr)
|
||||||
fmt.Println(msgSignature, timestamp, nonce, echostr)
|
fmt.Println(httpstr, msgSignature, timestamp, nonce, echostr)
|
||||||
wxcpt := wxbizjsonmsgcrypt.NewWXBizMsgCrypt(s.cfg.Qywx.Token, s.cfg.Qywx.AES_KEY, s.cfg.Qywx.CorpId, wxbizjsonmsgcrypt.JsonType)
|
wxcpt := wxbizjsonmsgcrypt.NewWXBizMsgCrypt(s.cfg.Qywx.Token, s.cfg.Qywx.AES_KEY, s.cfg.Qywx.CorpId, wxbizjsonmsgcrypt.JsonType)
|
||||||
echoStr, cryptErr := wxcpt.VerifyURL(msgSignature, timestamp, nonce, echostr)
|
echoStr, cryptErr := wxcpt.VerifyURL(msgSignature, timestamp, nonce, echostr)
|
||||||
if nil != cryptErr {
|
if nil != cryptErr {
|
||||||
|
|
@ -347,7 +354,13 @@ func (s *CallbackService) QywxCallback(c *fiber.Ctx) error {
|
||||||
return fmt.Errorf("%v", cryptErr)
|
return fmt.Errorf("%v", cryptErr)
|
||||||
}
|
}
|
||||||
fmt.Println("verifyUrl success echoStr", string(echoStr))
|
fmt.Println("verifyUrl success echoStr", string(echoStr))
|
||||||
err := c.Send(echoStr)
|
err = c.Send(echoStr)
|
||||||
return err
|
return err
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getString(str, endstr string, start int, msg *string) int {
|
||||||
|
end := strings.Index(str, endstr)
|
||||||
|
*msg = str[start:end]
|
||||||
|
return end + len(endstr)
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue