From a64c61473ced7d50d32535de55e680b44f4b4463 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 4 Dec 2023 16:59:31 +0800 Subject: [PATCH] 1 --- platformapi/jdapi/callback.go | 126 +++++++++++++++++----------------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/platformapi/jdapi/callback.go b/platformapi/jdapi/callback.go index 3d191953..16d67ef4 100644 --- a/platformapi/jdapi/callback.go +++ b/platformapi/jdapi/callback.go @@ -2,6 +2,7 @@ package jdapi import ( "encoding/json" + "git.rosy.net.cn/baseapi" "git.rosy.net.cn/jx-callback/globals" "io/ioutil" "net/http" @@ -257,7 +258,7 @@ func getMsgURLFromRequest(request *http.Request) (msgURL string) { return msgURL } -func GetCallbackMsg(request *http.Request) (callbackMsg *CallbackMsg, mapData map[string]interface{}, callbackResponse *CallbackResponse) { +func GetCallbackMsg2(request *http.Request) (callbackMsg *CallbackMsg, mapData map[string]interface{}, callbackResponse *CallbackResponse) { msgURL := getMsgURLFromRequest(request) data, err := ioutil.ReadAll(request.Body) if err != nil { @@ -317,68 +318,67 @@ func GetCallbackMsg(request *http.Request) (callbackMsg *CallbackMsg, mapData ma return callbackMsg, mapData, callbackResponse } -// -//func GetCallbackMsg(request *http.Request) (callbackMsg *CallbackMsg, mapData map[string]interface{}, callbackResponse *CallbackResponse) { -// msgURL := getMsgURLFromRequest(request) -// data, err := ioutil.ReadAll(request.Body) -// if err != nil { -// return nil, nil, Err2CallbackResponse(err, "") -// } -// values, err := utils.HTTPBody2Values(data, needDecodeMap[msgURL]) -// if err != nil { -// return nil, nil, FormatErrorResponse -// } -// mapData = utils.URLValues2Map(values) -// if err := json.Unmarshal(data, &callbackMsg); err != nil { -// return nil, nil, Err2CallbackResponse(err, "") -// } -// -// if err == nil { -// callbackMsg.MsgURL = msgURL -// if msgURL == CallbackMsgPushDeliveryStatus { -// var deliveryMsg *CallbackDeliveryStatusMsg -// if err = utils.UnmarshalUseNumber([]byte(callbackMsg.JdParamJSON), &deliveryMsg); err == nil { -// callbackMsg.Param = deliveryMsg -// deliveryMsg.CallbackMsg = callbackMsg -// } -// } else if msgURL == CallbackMsgStockIsHave { -// var mapData map[string]interface{} -// if err = utils.UnmarshalUseNumber([]byte(callbackMsg.JdParamJSON), &mapData); err == nil { -// stockMsg := map2StockCallbackMsg(mapData) -// callbackMsg.Param = stockMsg -// stockMsg.CallbackMsg = callbackMsg -// } -// } else if msgURL == CallbackMsgOrderInfoChange { -// var orderInfoMsg *CallbackOrderInfoChangeMsg -// if err = utils.UnmarshalUseNumber([]byte(callbackMsg.JdParamJSON), &orderInfoMsg); err == nil { -// callbackMsg.Param = orderInfoMsg -// orderInfoMsg.CallbackMsg = callbackMsg -// } -// } else if msgURL == CallBackMsgMemberCreateCard || msgURL == CallBackMsgMemberRenewCard { -// var orderInfoMsg *CallbackMemberMsg -// if err = utils.UnmarshalUseNumber([]byte(callbackMsg.JdParamJSON), &orderInfoMsg); err == nil { -// callbackMsg.Param = orderInfoMsg -// orderInfoMsg.CallbackMsg = callbackMsg -// } -// } else { -// var orderMsg *CallbackOrderMsg -// if err = utils.UnmarshalUseNumber([]byte(callbackMsg.JdParamJSON), &orderMsg); err == nil { -// callbackMsg.Param = orderMsg -// orderMsg.CallbackMsg = callbackMsg -// } -// } -// } -// if err != nil { -// return nil, nil, Err2CallbackResponse(err, "") -// } -// return callbackMsg, mapData, callbackResponse -//} - +func GetCallbackMsg(request *http.Request) (callbackMsg *CallbackMsg, mapData map[string]interface{}, callbackResponse *CallbackResponse) { + msgURL := getMsgURLFromRequest(request) + data, err := ioutil.ReadAll(request.Body) + if err != nil { + return nil, nil, Err2CallbackResponse(err, "") + } + values, err := utils.HTTPBody2Values(data, needDecodeMap[msgURL]) + if err != nil { + return nil, nil, FormatErrorResponse + } + mapData = utils.URLValues2Map(values) + globals.SugarLogger.Debugf("==============data := %s", utils.Format4Output(data, false)) + globals.SugarLogger.Debugf("==============msgURL := %s", msgURL) + globals.SugarLogger.Debugf("==============mapData := %s", utils.Format4Output(mapData, false)) + globals.SugarLogger.Debugf("==============msgURL := %s", msgURL) + if err = utils.Map2StructByJson(mapData, &callbackMsg, false); err == nil { + globals.SugarLogger.Debugf("==============callbackMsg := %s", utils.Format4Output(callbackMsg, false)) + callbackMsg.MsgURL = msgURL + if msgURL == CallbackMsgPushDeliveryStatus { + var deliveryMsg *CallbackDeliveryStatusMsg + if err = utils.UnmarshalUseNumber([]byte(callbackMsg.JdParamJSON), &deliveryMsg); err == nil { + callbackMsg.Param = deliveryMsg + deliveryMsg.CallbackMsg = callbackMsg + } + } else if msgURL == CallbackMsgStockIsHave { + var mapData map[string]interface{} + if err = utils.UnmarshalUseNumber([]byte(callbackMsg.JdParamJSON), &mapData); err == nil { + stockMsg := map2StockCallbackMsg(mapData) + callbackMsg.Param = stockMsg + stockMsg.CallbackMsg = callbackMsg + } + } else if msgURL == CallbackMsgOrderInfoChange { + var orderInfoMsg *CallbackOrderInfoChangeMsg + if err = utils.UnmarshalUseNumber([]byte(callbackMsg.JdParamJSON), &orderInfoMsg); err == nil { + callbackMsg.Param = orderInfoMsg + orderInfoMsg.CallbackMsg = callbackMsg + } + } else if msgURL == CallBackMsgMemberCreateCard || msgURL == CallBackMsgMemberRenewCard { + var orderInfoMsg *CallbackMemberMsg + if err = utils.UnmarshalUseNumber([]byte(callbackMsg.JdParamJSON), &orderInfoMsg); err == nil { + callbackMsg.Param = orderInfoMsg + orderInfoMsg.CallbackMsg = callbackMsg + } + } else { + var orderMsg *CallbackOrderMsg + if err = utils.UnmarshalUseNumber([]byte(callbackMsg.JdParamJSON), &orderMsg); err == nil { + callbackMsg.Param = orderMsg + orderMsg.CallbackMsg = callbackMsg + } + } + } + if err != nil { + return nil, nil, Err2CallbackResponse(err, "") + } + return callbackMsg, mapData, callbackResponse +} func (a *API) CheckCallbackValidation(mapData map[string]interface{}, signInData string) (callbackResponse *CallbackResponse) { - //sign := a.signParams(mapData) - //if sign != signInData { - // baseapi.SugarLogger.Infof("Signature is not ok, mine:%s, signInData:%s", sign, signInData) - // return FormatErrorResponse - //} + sign := a.signParams(mapData) + if sign != signInData { + baseapi.SugarLogger.Infof("Signature is not ok, mine:%s, signInData:%s", sign, signInData) + return FormatErrorResponse + } return nil }