package controllers import ( "bytes" "encoding/base64" "git.rosy.net.cn/baseapi/platformapi/dingdingapi" "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 = &dingdingapi.CallbackResponse{ Encrypt: base64.StdEncoding.EncodeToString(binResult), } c.Data["json"] = callbackResponse c.ServeJSON() } else { c.Abort("404") } }