修改企业微信推送

This commit is contained in:
邹宗楠
2022-06-23 10:38:25 +08:00
parent 9a693eb2ac
commit b2b5870cf1
2 changed files with 55 additions and 9 deletions

View File

@@ -450,6 +450,12 @@ func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bo
if !isSelfDelivery && globals.EnableJdStoreWrite {
_, err = getAPI(order.VendorOrgCode).OrderJDZBDelivery(order.VendorOrderID, userName)
} else {
switch order.DeliveryType {
case model.OrderDeliveryTypeStoreSelf: // 商家配送
_, err = getAPI(order.VendorOrgCode).OrderJDZBStoreDelivery(order.VendorOrderID, userName)
case model.OrderDeliveryTypeSelfTake: // 用户自提
_, err = getAPI(order.VendorOrgCode).OrderJDZBSelfDelivery(order.VendorOrderID, userName)
}
c.postFakeMsg(order.VendorOrgCode, order.VendorOrderID, jdapi.OrderStatusFinishedPickup)
}
if err == nil {

View File

@@ -8,6 +8,8 @@ import (
call "git.rosy.net.cn/baseapi/utils/weworkapi_golang-master"
"git.rosy.net.cn/jx-callback/globals"
"github.com/astaxie/beego/server/web"
"io/ioutil"
"strings"
)
type EnterpriseController struct {
@@ -18,20 +20,58 @@ type EnterpriseController struct {
// 消息结构体将使用创建应用时的EncodingAESKey进行加密特别注意, 在第三方回调事件中使用加解密算法receiveid的内容为suiteid
// ,请参考接收消息解析数据包。
func (e *EnterpriseController) EnterpriseCallback() {
r := e.Ctx.Request
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)
httpstr := r.URL.RawQuery
start := strings.Index(httpstr, "msg_signature=")
start += len("msg_signature=")
var msg_signature string
next := call.GetString(httpstr, "&timestamp=", start, &msg_signature)
var timestamp string
next = call.GetString(httpstr, "&nonce=", next, &timestamp)
nonce := httpstr[next:len(httpstr)]
body, _ := ioutil.ReadAll(r.Body)
wxcpt := call.NewWXBizMsgCrypt(call.Token, call.EncodingAeskey, call.ReceiverId, call.JsonType)
msg, err_ := wxcpt.DecryptMsg(msg_signature, timestamp, nonce, body)
if err_.ErrCode != 0 {
e.Abort("404")
} else {
if err := enterprise.UpdateEnterpriseSuite(suite); err != nil {
globals.SugarLogger.Debug("EnterpriseCallback=======2", err)
return
}
//var msgContent call.MsgContent
//err := json.Unmarshal(msg, &msgContent)
//if nil != err {
// globals.SugarLogger.Debug("Unmarshal fail", err)
//} else {
// globals.SugarLogger.Debug("struct=======", msgContent)
//}
//
//globals.SugarLogger.Debug(msgContent, err)
//ToUsername := msgContent.ToUsername
//msgContent.ToUsername = msgContent.FromUsername
//msgContent.FromUsername = ToUsername
//globals.SugarLogger.Debug("replaymsg=====", msgContent)
//replayJson, err := json.Marshal(&msgContent)
//
//encryptMsg, cryptErr := wxcpt.EncryptMsg(string(replayJson), timestamp, nonce)
//if nil != cryptErr {
// globals.SugarLogger.Debug("DecryptMsg fail", cryptErr)
//}
//
if strings.Contains(string(msg), "SuiteTicket") {
data, err := api.EnterpriseChatHeadApi.GetEnterpriseMsg(msg)
if err != nil {
globals.SugarLogger.Debug("Unmarshal SuiteTicket err : ", err)
} else {
if err := enterprise.UpdateEnterpriseSuite(data); err != nil {
globals.SugarLogger.Debug("UpdateEnterpriseSuite err :", err)
}
}
}
e.Data["xml"] = "success"
e.ServeXML()
e.Ctx.ResponseWriter.Write([]byte("success"))
case http.MethodGet:
call.VerifyURL(e.Ctx.ResponseWriter, e.Ctx.Request)
default: