This commit is contained in:
苏尹岚
2021-04-15 11:41:09 +08:00
parent 8997436415
commit 02b81146c0

View File

@@ -93,46 +93,46 @@ func (a *API) GetCallbackMsg(request *http.Request) (msg *CallbackMsg, callbackR
if err == nil { if err == nil {
data := utils.URLValues2Map(request.Form) data := utils.URLValues2Map(request.Form)
if dataSign, ok := data[signKey]; ok { if dataSign, ok := data[signKey]; ok {
fullURL := strings.TrimRight(a.callbackURL+request.URL.Path, "/") // fullURL := strings.TrimRight(a.callbackURL+request.URL.Path, "/")
sign := a.signParams(fullURL+"?", data) // sign := a.signParams(fullURL+"?", data)
cmd := strings.Trim(request.URL.EscapedPath(), "/") cmd := strings.Trim(request.URL.EscapedPath(), "/")
cmd = cmd[strings.LastIndex(cmd, "/")+1:] cmd = cmd[strings.LastIndex(cmd, "/")+1:]
if sign != dataSign.(string) && cmd != MsgTypeStoreStatusChanged { // if sign != dataSign.(string) && cmd != MsgTypeStoreStatusChanged {
baseapi.SugarLogger.Debugf("mtwm GetCallbackMsg my sign:%v, data sign:%v", sign, dataSign.(string)) // baseapi.SugarLogger.Debugf("mtwm GetCallbackMsg my sign:%v, data sign:%v", sign, dataSign.(string))
callbackResponse = SignatureIsNotOk // callbackResponse = SignatureIsNotOk
} else { // } else {
msg = &CallbackMsg{ msg = &CallbackMsg{
Cmd: cmd, Cmd: cmd,
} }
msg.FormData = make(url.Values) msg.FormData = make(url.Values)
for k, v := range data { for k, v := range data {
// 美团外卖的用户催单信息的timestamp是毫秒其它的事件是秒统一归一化为秒 // 美团外卖的用户催单信息的timestamp是毫秒其它的事件是秒统一归一化为秒
if cmd == MsgTypeUserUrgeOrder && k == "timestamp" { if cmd == MsgTypeUserUrgeOrder && k == "timestamp" {
intV := utils.Str2Int64(v.(string)) intV := utils.Str2Int64(v.(string))
if intV > time.Now().Unix()*2 { if intV > time.Now().Unix()*2 {
v = utils.Int64ToStr(intV / 1000) v = utils.Int64ToStr(intV / 1000)
data[k] = v data[k] = v
}
} }
msg.FormData.Set(k, v.(string))
} }
msg.Timestamp = utils.Str2Int64(msg.FormData.Get("timestamp")) msg.FormData.Set(k, v.(string))
msg.Sig = dataSign.(string) }
msg.AppID = msg.FormData.Get("app_id") msg.Timestamp = utils.Str2Int64(msg.FormData.Get("timestamp"))
msg.Sig = dataSign.(string)
msg.AppID = msg.FormData.Get("app_id")
if msg.Cmd == MsgTypeOrderRefund || msg.Cmd == MsgTypeOrderPartialRefund { if msg.Cmd == MsgTypeOrderRefund || msg.Cmd == MsgTypeOrderPartialRefund {
var refundData *CallbackRefundInfo var refundData *CallbackRefundInfo
if err = utils.Map2StructByJson(data, &refundData, true); err == nil { if err = utils.Map2StructByJson(data, &refundData, true); err == nil {
if refundData.Food != "" { if refundData.Food != "" {
utils.UnmarshalUseNumber([]byte(refundData.Food), &refundData.FoodList) utils.UnmarshalUseNumber([]byte(refundData.Food), &refundData.FoodList)
}
if refundData.Pictures != "" {
utils.UnmarshalUseNumber([]byte(refundData.Pictures), &refundData.PictureList)
}
msg.Data = refundData
} }
if refundData.Pictures != "" {
utils.UnmarshalUseNumber([]byte(refundData.Pictures), &refundData.PictureList)
}
msg.Data = refundData
} }
} }
// }
} else { } else {
callbackResponse = SuccessResponse // 美团外卖PING消息没有sign callbackResponse = SuccessResponse // 美团外卖PING消息没有sign
} }