修改企业微信推送
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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, "×tamp=", start, &msg_signature)
|
||||
var timestamp string
|
||||
next = call.GetString(httpstr, "&nonce=", next, ×tamp)
|
||||
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:
|
||||
|
||||
Reference in New Issue
Block a user