41 lines
1.3 KiB
Go
41 lines
1.3 KiB
Go
package controllers
|
||
|
||
import (
|
||
"git.rosy.net.cn/jx-callback/business/enterprise"
|
||
"git.rosy.net.cn/jx-callback/globals/api"
|
||
"net/http"
|
||
|
||
call "git.rosy.net.cn/baseapi/utils/weworkapi_golang-master"
|
||
"git.rosy.net.cn/jx-callback/globals"
|
||
"github.com/astaxie/beego/server/web"
|
||
)
|
||
|
||
type EnterpriseController struct {
|
||
web.Controller
|
||
}
|
||
|
||
// EnterpriseCallback 在发生授权、通讯录变更、ticket变化等事件时,企业微信服务器会向应用的“指令回调URL”推送相应的事件消息。
|
||
// 消息结构体将使用创建应用时的EncodingAESKey进行加密(特别注意, 在第三方回调事件中使用加解密算法,receiveid的内容为suiteid)
|
||
// ,请参考接收消息解析数据包。
|
||
func (e *EnterpriseController) EnterpriseCallback() {
|
||
switch e.Ctx.Request.Method {
|
||
case http.MethodPost:
|
||
globals.SugarLogger.Debug("=====")
|
||
suite, err := api.EnterpriseChatHeadApi.GetEnterpriseMsg(e.Ctx.Request)
|
||
if err != nil {
|
||
globals.SugarLogger.Debug("EnterpriseCallback=======1", err)
|
||
e.Abort("404")
|
||
} else {
|
||
if err := enterprise.UpdateEnterpriseSuite(suite); err != nil {
|
||
globals.SugarLogger.Debug("EnterpriseCallback=======2", err)
|
||
}
|
||
}
|
||
e.Data["xml"] = "success"
|
||
e.ServeXML()
|
||
case http.MethodGet:
|
||
call.VerifyURL(e.Ctx.ResponseWriter, e.Ctx.Request)
|
||
default:
|
||
e.Abort("404")
|
||
}
|
||
}
|