优化jdapi.CallbackMsg
This commit is contained in:
@@ -112,7 +112,7 @@ type CallbackResponse struct {
|
||||
}
|
||||
|
||||
type CallbackMsg struct {
|
||||
MsgURL string `json:"-"`
|
||||
MsgURL string `json:"msgURL"`
|
||||
|
||||
AppKey string `json:"app_key"`
|
||||
Token string `json:"token"`
|
||||
@@ -122,11 +122,11 @@ type CallbackMsg struct {
|
||||
V string `json:"v"`
|
||||
|
||||
JdParamJSON string `json:"jd_param_json"`
|
||||
Param interface{} `json:"param"`
|
||||
Param interface{} `json:"-"` // 这里json必须是-,否则会导致json encode时死递归
|
||||
}
|
||||
|
||||
type CallbackOrderMsg struct {
|
||||
MsgURL string `json:"msgURL"`
|
||||
*CallbackMsg
|
||||
BillID string `json:"billId"`
|
||||
OutBillID string `json:"outBillId"`
|
||||
StatusID string `json:"statusId"`
|
||||
@@ -135,6 +135,7 @@ type CallbackOrderMsg struct {
|
||||
}
|
||||
|
||||
type CallbackDeliveryStatusMsg struct {
|
||||
*CallbackMsg
|
||||
OrderID string `json:"orderId"`
|
||||
DeliveryStatusTime string `json:"deliveryStatusTime"`
|
||||
DeliveryManNo string `json:"deliveryManNo"`
|
||||
@@ -151,6 +152,7 @@ type CallbackDeliveryStatusMsg struct {
|
||||
}
|
||||
|
||||
type CallbackStoreStockMsg struct {
|
||||
*CallbackMsg
|
||||
StationNo string `json:"stationNo"`
|
||||
SkuID int64 `json:"skuId"`
|
||||
Have bool `json:"have"`
|
||||
@@ -247,7 +249,9 @@ func (a *API) getCommonOrderCallbackMsg(values url.Values, msg interface{}) (cal
|
||||
|
||||
func (a *API) GetOrderCallbackMsg(values url.Values, msgURL string) (msg *CallbackOrderMsg, callbackResponse *CallbackResponse) {
|
||||
if callbackResponse = a.getCommonOrderCallbackMsg(values, &msg); callbackResponse == nil {
|
||||
msg.MsgURL = msgURL
|
||||
msg.CallbackMsg = &CallbackMsg{
|
||||
MsgURL: msgURL,
|
||||
}
|
||||
}
|
||||
return msg, callbackResponse
|
||||
}
|
||||
@@ -302,17 +306,23 @@ func GetCallbackMsg2(request *http.Request) (callbackMsg *CallbackMsg, mapData m
|
||||
callbackMsg.MsgURL = msgURL
|
||||
if msgURL == CallbackMsgDeliveryCarrierModify {
|
||||
var deliveryMsg *CallbackDeliveryStatusMsg
|
||||
err = utils.UnmarshalUseNumber([]byte(callbackMsg.JdParamJSON), &deliveryMsg)
|
||||
callbackMsg.Param = deliveryMsg
|
||||
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 {
|
||||
callbackMsg.Param = map2StockCallbackMsg(mapData)
|
||||
stockMsg := map2StockCallbackMsg(mapData)
|
||||
callbackMsg.Param = stockMsg
|
||||
stockMsg.CallbackMsg = callbackMsg
|
||||
}
|
||||
} else {
|
||||
var orderMsg *CallbackOrderMsg
|
||||
err = utils.UnmarshalUseNumber([]byte(callbackMsg.JdParamJSON), &orderMsg)
|
||||
callbackMsg.Param = orderMsg
|
||||
if err = utils.UnmarshalUseNumber([]byte(callbackMsg.JdParamJSON), &orderMsg); err == nil {
|
||||
callbackMsg.Param = orderMsg
|
||||
orderMsg.CallbackMsg = callbackMsg
|
||||
}
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user