Files
jx-callback/controllers/dingding_callback.go
suyl c40ee75121 aa
2021-08-17 11:14:18 +08:00

48 lines
1.3 KiB
Go

package controllers
import (
"bytes"
"encoding/base64"
"net/http"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api"
"github.com/astaxie/beego/server/web"
)
type DingDingController struct {
web.Controller
}
func init() {
}
func (c *DingDingController) Msg() {
globals.SugarLogger.Debugf("dingding msg:%s", string(c.Ctx.Input.RequestBody))
if c.Ctx.Input.Method() == http.MethodPost {
dataMap := utils.URLValues2Map(c.Ctx.Request.Form)
_, callbackResponse := api.DingDingAPI.GetCallbackMsg(dataMap, c.Ctx.Input.RequestBody)
//if callbackResponse == nil {
// globals.SugarLogger.Debugf("dingding msg, obj:%s", utils.Format4Output(obj, false))
// callbackResponse = cms.OnDingDingMsg(dataMap)
// if callbackResponse == nil {
// callbackResponse = api.DingDingAPI.Err2CallbackResponse(nil)
// }
//}
aesKey := api.DingDingAPI.GetCallbackAESKey()
buf := bytes.NewBuffer(nil)
//buf.WriteString(utils.GetUUID()[:16])
//binary.Write(buf, binary.BigEndian, int32(len("success")))
buf.WriteString("success")
//buf.WriteString(a.corpID)
binResult, _ := utils.AESCBCEncpryt(buf.Bytes(), aesKey, aesKey[:16])
callbackResponse.Encrypt = base64.StdEncoding.EncodeToString(binResult)
c.Data["json"] = callbackResponse
c.ServeJSON()
} else {
c.Abort("404")
}
}