+CallbackMsgVenderAuditApplyCancelOrder

This commit is contained in:
gazebo
2019-12-17 15:50:04 +08:00
parent 4085be8370
commit 8e928cda16
2 changed files with 16 additions and 111 deletions

View File

@@ -1,14 +1,11 @@
package jdapi
import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
"strings"
"git.rosy.net.cn/baseapi"
"git.rosy.net.cn/baseapi/platformapi"
"git.rosy.net.cn/baseapi/utils"
)
@@ -37,6 +34,9 @@ const (
OrderStatusFinished = "90000"
OrderStatusCanceled = "20020"
OrderStatusVenderAgreeCancel = "20031" // 商家同意取消申请
OrderStatusVenderRejctCancel = "20032" // 商家驳回取消申请
OrderStatusUserApplyCancel = "20030" // 这个其实不是一个状态,是一个动作
OrderStatusLocked = "20010"
OrderStatusUnlocked = "20050"
@@ -87,10 +87,11 @@ const (
const (
// 订单
CallbackMsgDeliveryCarrierModify = "deliveryCarrierModify" // 订单转自送消息(是指转自送成功后,用处不大)
CallbackMsgOrderAccounting = "orderAccounting" // 订单应结消息
CallbackMsgApplyCancelOrder = "applyCancelOrder"
CallbackMsgPushDeliveryStatus = "pushDeliveryStatus"
CallbackMsgDeliveryCarrierModify = "deliveryCarrierModify" // 订单转自送消息(是指转自送成功后,用处不大)
CallbackMsgOrderAccounting = "orderAccounting" // 订单应结消息
CallbackMsgApplyCancelOrder = "applyCancelOrder"
CallbackMsgPushDeliveryStatus = "pushDeliveryStatus"
CallbackMsgVenderAuditApplyCancelOrder = "venderAuditApplyCancelOrder"
// 账务
CallbackMsgEndOrderFinance = "endOrderFinance" // 订单金额拆分完成消息
@@ -183,9 +184,10 @@ var (
FormatErrorResponse = &CallbackResponse{Code: "-1", Msg: "failed", Data: ""}
needDecodeMap = map[string]bool{
CallbackMsgApplyCancelOrder: true,
CallbackMsgPushDeliveryStatus: true,
CallbackMsgStockIsHave: true,
CallbackMsgApplyCancelOrder: true,
CallbackMsgPushDeliveryStatus: true,
CallbackMsgStockIsHave: true,
CallbackMsgVenderAuditApplyCancelOrder: true,
}
)
@@ -200,83 +202,6 @@ func Err2CallbackResponse(err error, data string) *CallbackResponse {
}
}
func unmarshalData(strData string, msg interface{}) (callbackResponse *CallbackResponse) {
err := utils.UnmarshalUseNumber([]byte(strData), msg)
if err != nil {
return &CallbackResponse{
Code: ResponseCodeAbnormalParam,
Msg: fmt.Sprintf(platformapi.ErrStrUnmarshalError, strData, err),
Data: strData,
}
}
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)
if sign != values.Get(signKey) {
baseapi.SugarLogger.Infof("Signature is not ok, mine:%v, get:%v", sign, values.Get(signKey))
return FormatErrorResponse
}
return nil
}
func (a *API) getCommonOrderCallbackMsg(values url.Values, msg interface{}) (callbackResponse *CallbackResponse) {
if callbackResponse = a.CheckCallbackValidation(values); callbackResponse != nil {
return callbackResponse
}
jdParamJSON := values.Get(paramJson)
// baseapi.SugarLogger.Debug(jdParamJSON)
if callbackResponse = unmarshalData(jdParamJSON, msg); callbackResponse != nil {
return callbackResponse
}
return nil
}
func (a *API) GetOrderCallbackMsg(values url.Values, msgURL string) (msg *CallbackOrderMsg, callbackResponse *CallbackResponse) {
if callbackResponse = a.getCommonOrderCallbackMsg(values, &msg); callbackResponse == nil {
msg.CallbackMsg = &CallbackMsg{
MsgURL: msgURL,
}
}
return msg, callbackResponse
}
func (a *API) GetOrderDeliveryCallbackMsg(values url.Values, msgURL string) (msg *CallbackDeliveryStatusMsg, callbackResponse *CallbackResponse) {
if callbackResponse = a.getCommonOrderCallbackMsg(values, &msg); callbackResponse == nil {
msg.CallbackMsg = &CallbackMsg{
MsgURL: msgURL,
}
}
return msg, callbackResponse
}
func (a *API) GetStoreStockCallbackMsg(values url.Values, msgURL string) (msg *CallbackStoreStockMsg, callbackResponse *CallbackResponse) {
var tmpMsg map[string]interface{}
callbackResponse = a.getCommonOrderCallbackMsg(values, &tmpMsg)
if callbackResponse == nil {
msg = map2StockCallbackMsg(tmpMsg)
msg.CallbackMsg = &CallbackMsg{
MsgURL: msgURL,
}
}
return msg, callbackResponse
}
func map2StockCallbackMsg(mapData map[string]interface{}) (msg *CallbackStoreStockMsg) {
msg = &CallbackStoreStockMsg{
StationNo: utils.Interface2String(mapData["stationNo"]),
@@ -298,7 +223,7 @@ func getMsgURLFromRequest(request *http.Request) (msgURL string) {
return msgURL
}
func GetCallbackMsg2(request *http.Request) (callbackMsg *CallbackMsg, mapData map[string]interface{}, callbackResponse *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 {
@@ -338,7 +263,7 @@ func GetCallbackMsg2(request *http.Request) (callbackMsg *CallbackMsg, mapData m
return callbackMsg, mapData, callbackResponse
}
func (a *API) CheckCallbackValidation2(mapData map[string]interface{}, signInData string) (callbackResponse *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)