修改jdapi回调取消息为两步
This commit is contained in:
@@ -176,7 +176,7 @@ func Err2CallbackResponse(err error, data string) *CallbackResponse {
|
||||
}
|
||||
}
|
||||
|
||||
func (a *API) unmarshalData(strData string, msg interface{}) (callbackResponse *CallbackResponse) {
|
||||
func unmarshalData(strData string, msg interface{}) (callbackResponse *CallbackResponse) {
|
||||
err := utils.UnmarshalUseNumber([]byte(strData), msg)
|
||||
if err != nil {
|
||||
return &CallbackResponse{
|
||||
@@ -188,6 +188,19 @@ func (a *API) unmarshalData(strData string, msg interface{}) (callbackResponse *
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetCallbackMsg(request *http.Request, needDecode bool) (values url.Values, token, msgURL string, callbackResponse *CallbackResponse) {
|
||||
data, err := ioutil.ReadAll(request.Body)
|
||||
if err != nil {
|
||||
return nil, "", "", Err2CallbackResponse(err, "")
|
||||
}
|
||||
values, err = utils.HTTPBody2Values(data, needDecode)
|
||||
if err != nil {
|
||||
return nil, "", "", FormatErrorResponse
|
||||
}
|
||||
token = values.Get("token")
|
||||
return values, token, getMsgURLFromRequest(request), nil
|
||||
}
|
||||
|
||||
func (a *API) CheckCallbackValidation(values url.Values) (callbackResponse *CallbackResponse) {
|
||||
mapData := utils.URLValues2Map(values)
|
||||
sign := a.signParams(mapData)
|
||||
@@ -198,56 +211,37 @@ func (a *API) CheckCallbackValidation(values url.Values) (callbackResponse *Call
|
||||
return nil
|
||||
}
|
||||
|
||||
func (a *API) getCommonOrderCallbackMsg(request *http.Request, msg interface{}, needDecode bool) (callbackResponse *CallbackResponse) {
|
||||
data, err := ioutil.ReadAll(request.Body)
|
||||
if err != nil {
|
||||
return Err2CallbackResponse(err, "")
|
||||
}
|
||||
// baseapi.SugarLogger.Debug(string(data))
|
||||
result, err := utils.HTTPBody2Values(data, needDecode)
|
||||
if err != nil {
|
||||
return FormatErrorResponse
|
||||
}
|
||||
if callbackResponse = a.CheckCallbackValidation(result); callbackResponse != nil {
|
||||
func (a *API) getCommonOrderCallbackMsg(values url.Values, msg interface{}) (callbackResponse *CallbackResponse) {
|
||||
if callbackResponse = a.CheckCallbackValidation(values); callbackResponse != nil {
|
||||
return callbackResponse
|
||||
}
|
||||
|
||||
jdParamJSON := result.Get(paramJson)
|
||||
jdParamJSON := values.Get(paramJson)
|
||||
// baseapi.SugarLogger.Debug(jdParamJSON)
|
||||
if callbackResponse = a.unmarshalData(jdParamJSON, msg); callbackResponse != nil {
|
||||
if callbackResponse = unmarshalData(jdParamJSON, msg); callbackResponse != nil {
|
||||
return callbackResponse
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (a *API) GetOrderCallbackMsg(request *http.Request) (msg *CallbackOrderMsg, callbackResponse *CallbackResponse) {
|
||||
msg = new(CallbackOrderMsg)
|
||||
if callbackResponse = a.getCommonOrderCallbackMsg(request, msg, false); callbackResponse == nil {
|
||||
msg.MsgURL = getMsgURLFromRequest(request)
|
||||
func (a *API) GetOrderCallbackMsg(values url.Values, msgURL string) (msg *CallbackOrderMsg, callbackResponse *CallbackResponse) {
|
||||
if callbackResponse = a.getCommonOrderCallbackMsg(values, &msg); callbackResponse == nil {
|
||||
msg.MsgURL = msgURL
|
||||
}
|
||||
return msg, callbackResponse
|
||||
}
|
||||
|
||||
func (a *API) GetOrderApplyCancelCallbackMsg(request *http.Request) (msg *CallbackOrderMsg, callbackResponse *CallbackResponse) {
|
||||
msg = new(CallbackOrderMsg)
|
||||
if callbackResponse = a.getCommonOrderCallbackMsg(request, msg, true); callbackResponse == nil {
|
||||
msg.MsgURL = getMsgURLFromRequest(request)
|
||||
func (a *API) GetOrderDeliveryCallbackMsg(values url.Values, msgURL string) (msg *CallbackDeliveryStatusMsg, callbackResponse *CallbackResponse) {
|
||||
if callbackResponse = a.getCommonOrderCallbackMsg(values, &msg); callbackResponse == nil {
|
||||
msg.MsgURL = msgURL
|
||||
}
|
||||
return msg, callbackResponse
|
||||
}
|
||||
|
||||
func (a *API) GetOrderDeliveryCallbackMsg(request *http.Request) (msg *CallbackDeliveryStatusMsg, callbackResponse *CallbackResponse) {
|
||||
if callbackResponse = a.getCommonOrderCallbackMsg(request, &msg, true); callbackResponse == nil {
|
||||
msg.MsgURL = getMsgURLFromRequest(request)
|
||||
}
|
||||
return msg, callbackResponse
|
||||
}
|
||||
|
||||
func (a *API) GetStoreStockCallbackMsg(request *http.Request) (msg *CallbackStoreStockMsg, callbackResponse *CallbackResponse) {
|
||||
func (a *API) GetStoreStockCallbackMsg(values url.Values, msgURL string) (msg *CallbackStoreStockMsg, callbackResponse *CallbackResponse) {
|
||||
msg = new(CallbackStoreStockMsg)
|
||||
msg.MsgURL = getMsgURLFromRequest(request)
|
||||
msg.MsgURL = msgURL
|
||||
var tmpMsg map[string]interface{}
|
||||
callbackResponse = a.getCommonOrderCallbackMsg(request, &tmpMsg, true)
|
||||
callbackResponse = a.getCommonOrderCallbackMsg(values, &tmpMsg)
|
||||
if callbackResponse == nil {
|
||||
msg.StationNo = utils.Interface2String(tmpMsg["stationNo"])
|
||||
msg.SkuId = utils.Str2Int64(utils.Interface2String(tmpMsg["skuId"]))
|
||||
|
||||
Reference in New Issue
Block a user