京东回调重新实现
This commit is contained in:
@@ -122,7 +122,7 @@ type CallbackMsg struct {
|
||||
V string `json:"v"`
|
||||
|
||||
JdParamJSON string `json:"jd_param_json"`
|
||||
Param interface{} `json:"-"`
|
||||
Param interface{} `json:"param"`
|
||||
}
|
||||
|
||||
type CallbackOrderMsg struct {
|
||||
@@ -287,17 +287,17 @@ func getMsgURLFromRequest(request *http.Request) (msgURL string) {
|
||||
return msgURL
|
||||
}
|
||||
|
||||
func GetCallbackMsg2(request *http.Request) (callbackMsg *CallbackMsg, 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 {
|
||||
return nil, Err2CallbackResponse(err, "")
|
||||
return nil, nil, Err2CallbackResponse(err, "")
|
||||
}
|
||||
values, err := utils.HTTPBody2Values(data, needDecodeMap[msgURL])
|
||||
if err != nil {
|
||||
return nil, FormatErrorResponse
|
||||
return nil, nil, FormatErrorResponse
|
||||
}
|
||||
mapData := utils.URLValues2Map(values)
|
||||
mapData = utils.URLValues2Map(values)
|
||||
if err = utils.Map2StructByJson(mapData, &callbackMsg, false); err == nil {
|
||||
callbackMsg.MsgURL = msgURL
|
||||
if msgURL == CallbackMsgDeliveryCarrierModify {
|
||||
@@ -316,16 +316,15 @@ func GetCallbackMsg2(request *http.Request) (callbackMsg *CallbackMsg, callbackR
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
return nil, Err2CallbackResponse(err, "")
|
||||
return nil, nil, Err2CallbackResponse(err, "")
|
||||
}
|
||||
return callbackMsg, callbackResponse
|
||||
return callbackMsg, mapData, callbackResponse
|
||||
}
|
||||
|
||||
func (a *API) CheckCallbackValidation2(callbackMsg *CallbackMsg) (callbackResponse *CallbackResponse) {
|
||||
mapData := utils.Struct2FlatMap(callbackMsg)
|
||||
func (a *API) CheckCallbackValidation2(mapData map[string]interface{}, signInData string) (callbackResponse *CallbackResponse) {
|
||||
sign := a.signParams(mapData)
|
||||
if sign != callbackMsg.Sign {
|
||||
baseapi.SugarLogger.Infof("Signature is not ok, mine:%v, get:%v", sign, callbackMsg.Sign)
|
||||
if sign != signInData {
|
||||
baseapi.SugarLogger.Infof("Signature is not ok, mine:%s, signInData:%s", sign, signInData)
|
||||
return FormatErrorResponse
|
||||
}
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user