企业微信回调
This commit is contained in:
45
business/enterprise/enterprise.go
Normal file
45
business/enterprise/enterprise.go
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
package enterprise
|
||||||
|
|
||||||
|
import (
|
||||||
|
"git.rosy.net.cn/baseapi/platformapi/enterprise_wechat"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/model/legacymodel"
|
||||||
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
|
"strconv"
|
||||||
|
)
|
||||||
|
|
||||||
|
var EnterpriseSuite *enterprise_wechat.SuiteTicketInfo
|
||||||
|
|
||||||
|
// 初始化加载全局变量
|
||||||
|
func init() {
|
||||||
|
config := make([]*legacymodel.Config, 0)
|
||||||
|
sql := `SELECT * FROM config WHERE thirdparty = ? `
|
||||||
|
if err := dao.GetRows(dao.GetDB(), config, sql, []interface{}{"enterprise"}); err != nil {
|
||||||
|
globals.SugarLogger.Debugf("enterprice config err = ", err)
|
||||||
|
}
|
||||||
|
if len(config) >= model.YES {
|
||||||
|
EnterpriseSuite.SuiteId = config[0].RefreshToken
|
||||||
|
EnterpriseSuite.SuiteTicket = config[0].Token
|
||||||
|
EnterpriseSuite.InfoType = ""
|
||||||
|
time, _ := strconv.ParseInt(config[0].Date, 10, 64)
|
||||||
|
EnterpriseSuite.TimeStamp = time
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateEnterpriseSuite(data *enterprise_wechat.SuiteTicketInfo) error {
|
||||||
|
if data.SuiteTicket != "" && data.TimeStamp > 0 {
|
||||||
|
EnterpriseSuite = data
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改数据库
|
||||||
|
db := dao.GetDB()
|
||||||
|
config := &legacymodel.Config{
|
||||||
|
Thirdparty: "enterprise",
|
||||||
|
Token: data.SuiteTicket,
|
||||||
|
Date: string(data.TimeStamp),
|
||||||
|
LastOperator: model.AdminName,
|
||||||
|
RefreshToken: data.SuiteId,
|
||||||
|
}
|
||||||
|
return dao.CreateOrUpdate(db, config)
|
||||||
|
}
|
||||||
31
controllers/enterprise_callback.go
Normal file
31
controllers/enterprise_callback.go
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
package controllers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"git.rosy.net.cn/jx-callback/business/enterprise"
|
||||||
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
|
"git.rosy.net.cn/jx-callback/globals/api"
|
||||||
|
"github.com/astaxie/beego/server/web"
|
||||||
|
)
|
||||||
|
|
||||||
|
type EnterpriseController struct {
|
||||||
|
web.Controller
|
||||||
|
}
|
||||||
|
|
||||||
|
// EnterpriseCallback 在发生授权、通讯录变更、ticket变化等事件时,企业微信服务器会向应用的“指令回调URL”推送相应的事件消息。
|
||||||
|
// 消息结构体将使用创建应用时的EncodingAESKey进行加密(特别注意, 在第三方回调事件中使用加解密算法,receiveid的内容为suiteid)
|
||||||
|
// ,请参考接收消息解析数据包。
|
||||||
|
func (e *EnterpriseController) EnterpriseCallback() {
|
||||||
|
globals.SugarLogger.Debug("======================")
|
||||||
|
enterpriseData, err := api.EnterpriseChatHeadApi.GetEnterpriseMsg(e.Ctx.Request)
|
||||||
|
if err != nil {
|
||||||
|
globals.SugarLogger.Debug("======================err1", err)
|
||||||
|
e.Abort("404")
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := enterprise.UpdateEnterpriseSuite(enterpriseData); err != nil {
|
||||||
|
globals.SugarLogger.Debug("======================err2", err)
|
||||||
|
e.Abort("404")
|
||||||
|
}
|
||||||
|
e.Data["xml"] = "success"
|
||||||
|
e.ServeXML()
|
||||||
|
}
|
||||||
1
main.go
1
main.go
@@ -40,6 +40,7 @@ import (
|
|||||||
_ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/alipay"
|
_ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/alipay"
|
||||||
_ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/dingding"
|
_ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/dingding"
|
||||||
_ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/douyin"
|
_ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/douyin"
|
||||||
|
_ "git.rosy.net.cn/jx-callback/business/enterprise"
|
||||||
_ "git.rosy.net.cn/jx-callback/business/model/dao"
|
_ "git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
_ "git.rosy.net.cn/jx-callback/business/partner/purchase/ebai"
|
_ "git.rosy.net.cn/jx-callback/business/partner/purchase/ebai"
|
||||||
_ "git.rosy.net.cn/jx-callback/business/partner/purchase/jd"
|
_ "git.rosy.net.cn/jx-callback/business/partner/purchase/jd"
|
||||||
|
|||||||
@@ -182,6 +182,7 @@ func init() {
|
|||||||
web.AutoRouter(&controllers.KnowUploadController{})
|
web.AutoRouter(&controllers.KnowUploadController{})
|
||||||
web.AutoRouter(&controllers.AliApiController{})
|
web.AutoRouter(&controllers.AliApiController{})
|
||||||
web.AutoRouter(&controllers.TicTocController{})
|
web.AutoRouter(&controllers.TicTocController{})
|
||||||
|
web.AutoRouter(&controllers.EnterpriseController{})
|
||||||
|
|
||||||
// 如下都是用于检测存活的空接口
|
// 如下都是用于检测存活的空接口
|
||||||
web.Any("/", func(ctx *beecontext.Context) {
|
web.Any("/", func(ctx *beecontext.Context) {
|
||||||
|
|||||||
Reference in New Issue
Block a user