+CallbackMsgVenderAuditApplyCancelOrder
This commit is contained in:
@@ -1,14 +1,11 @@
|
|||||||
package jdapi
|
package jdapi
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi"
|
"git.rosy.net.cn/baseapi"
|
||||||
"git.rosy.net.cn/baseapi/platformapi"
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -37,6 +34,9 @@ const (
|
|||||||
OrderStatusFinished = "90000"
|
OrderStatusFinished = "90000"
|
||||||
OrderStatusCanceled = "20020"
|
OrderStatusCanceled = "20020"
|
||||||
|
|
||||||
|
OrderStatusVenderAgreeCancel = "20031" // 商家同意取消申请
|
||||||
|
OrderStatusVenderRejctCancel = "20032" // 商家驳回取消申请
|
||||||
|
|
||||||
OrderStatusUserApplyCancel = "20030" // 这个其实不是一个状态,是一个动作
|
OrderStatusUserApplyCancel = "20030" // 这个其实不是一个状态,是一个动作
|
||||||
OrderStatusLocked = "20010"
|
OrderStatusLocked = "20010"
|
||||||
OrderStatusUnlocked = "20050"
|
OrderStatusUnlocked = "20050"
|
||||||
@@ -87,10 +87,11 @@ const (
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
// 订单
|
// 订单
|
||||||
CallbackMsgDeliveryCarrierModify = "deliveryCarrierModify" // 订单转自送消息(是指转自送成功后,用处不大)
|
CallbackMsgDeliveryCarrierModify = "deliveryCarrierModify" // 订单转自送消息(是指转自送成功后,用处不大)
|
||||||
CallbackMsgOrderAccounting = "orderAccounting" // 订单应结消息
|
CallbackMsgOrderAccounting = "orderAccounting" // 订单应结消息
|
||||||
CallbackMsgApplyCancelOrder = "applyCancelOrder"
|
CallbackMsgApplyCancelOrder = "applyCancelOrder"
|
||||||
CallbackMsgPushDeliveryStatus = "pushDeliveryStatus"
|
CallbackMsgPushDeliveryStatus = "pushDeliveryStatus"
|
||||||
|
CallbackMsgVenderAuditApplyCancelOrder = "venderAuditApplyCancelOrder"
|
||||||
|
|
||||||
// 账务
|
// 账务
|
||||||
CallbackMsgEndOrderFinance = "endOrderFinance" // 订单金额拆分完成消息
|
CallbackMsgEndOrderFinance = "endOrderFinance" // 订单金额拆分完成消息
|
||||||
@@ -183,9 +184,10 @@ var (
|
|||||||
FormatErrorResponse = &CallbackResponse{Code: "-1", Msg: "failed", Data: ""}
|
FormatErrorResponse = &CallbackResponse{Code: "-1", Msg: "failed", Data: ""}
|
||||||
|
|
||||||
needDecodeMap = map[string]bool{
|
needDecodeMap = map[string]bool{
|
||||||
CallbackMsgApplyCancelOrder: true,
|
CallbackMsgApplyCancelOrder: true,
|
||||||
CallbackMsgPushDeliveryStatus: true,
|
CallbackMsgPushDeliveryStatus: true,
|
||||||
CallbackMsgStockIsHave: 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) {
|
func map2StockCallbackMsg(mapData map[string]interface{}) (msg *CallbackStoreStockMsg) {
|
||||||
msg = &CallbackStoreStockMsg{
|
msg = &CallbackStoreStockMsg{
|
||||||
StationNo: utils.Interface2String(mapData["stationNo"]),
|
StationNo: utils.Interface2String(mapData["stationNo"]),
|
||||||
@@ -298,7 +223,7 @@ func getMsgURLFromRequest(request *http.Request) (msgURL string) {
|
|||||||
return msgURL
|
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)
|
msgURL := getMsgURLFromRequest(request)
|
||||||
data, err := ioutil.ReadAll(request.Body)
|
data, err := ioutil.ReadAll(request.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -338,7 +263,7 @@ func GetCallbackMsg2(request *http.Request) (callbackMsg *CallbackMsg, mapData m
|
|||||||
return callbackMsg, mapData, callbackResponse
|
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)
|
sign := a.signParams(mapData)
|
||||||
if sign != signInData {
|
if sign != signInData {
|
||||||
baseapi.SugarLogger.Infof("Signature is not ok, mine:%s, signInData:%s", sign, signInData)
|
baseapi.SugarLogger.Infof("Signature is not ok, mine:%s, signInData:%s", sign, signInData)
|
||||||
|
|||||||
@@ -33,12 +33,12 @@ func TestGetCallbackMsg(t *testing.T) {
|
|||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
callbackStr := strings.TrimSpace(strPair[1])
|
callbackStr := strings.TrimSpace(strPair[1])
|
||||||
callbackMsg, mapData, resp := GetCallbackMsg2(utils.BuildRequest(http.MethodPost, "/djsw/"+strPair[0], callbackStr, ""))
|
callbackMsg, mapData, resp := GetCallbackMsg(utils.BuildRequest(http.MethodPost, "/djsw/"+strPair[0], callbackStr, ""))
|
||||||
if resp != nil {
|
if resp != nil {
|
||||||
t.Fatal(resp)
|
t.Fatal(resp)
|
||||||
}
|
}
|
||||||
sugarLogger.Debug(callbackMsg.MsgURL)
|
sugarLogger.Debug(callbackMsg.MsgURL)
|
||||||
resp = api.CheckCallbackValidation2(mapData, callbackMsg.Sign)
|
resp = api.CheckCallbackValidation(mapData, callbackMsg.Sign)
|
||||||
if resp != nil {
|
if resp != nil {
|
||||||
t.Fatal(resp)
|
t.Fatal(resp)
|
||||||
}
|
}
|
||||||
@@ -46,26 +46,6 @@ func TestGetCallbackMsg(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGetOrderCallbackMsg(t *testing.T) {
|
|
||||||
callbackStr := strings.TrimSpace(
|
|
||||||
`
|
|
||||||
timestamp=2019-12-03+06%3A28%3A40&sign=84AF173723A89E95AD7D0CFECA293683&v=1.0&jd_param_json=%7B%22billId%22%3A%22929053552000142%22%2C%22statusId%22%3A%2232000%22%2C%22timestamp%22%3A%222019-12-03+06%3A28%3A37%22%7D&token=77e703b7-7997-441b-a12a-2e522efb117a&app_key=1dba76d40cac446ca500c0391a0b6c9d&format=json
|
|
||||||
|
|
||||||
`)
|
|
||||||
values, token, msgURL, resp := GetCallbackMsg(utils.BuildRequest(http.MethodPost, "/djsw/"+CallbackMsgOrderAccounting, callbackStr, ""), false)
|
|
||||||
if resp != nil {
|
|
||||||
t.Fatal(resp)
|
|
||||||
}
|
|
||||||
sugarLogger.Debug(token)
|
|
||||||
sugarLogger.Debug(msgURL)
|
|
||||||
orderMsg, resp := api.GetOrderCallbackMsg(values, msgURL)
|
|
||||||
if resp != nil {
|
|
||||||
t.Fatal(resp)
|
|
||||||
}
|
|
||||||
sugarLogger.Debug(utils.Format4Output(orderMsg, false))
|
|
||||||
sugarLogger.Debug(orderMsg.MsgURL)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestSimulateSendNewOrderMsg(t *testing.T) {
|
func TestSimulateSendNewOrderMsg(t *testing.T) {
|
||||||
orderInfo := &CallbackOrderMsg{
|
orderInfo := &CallbackOrderMsg{
|
||||||
BillID: "813344594000041",
|
BillID: "813344594000041",
|
||||||
|
|||||||
Reference in New Issue
Block a user