From fa92bb8a1837e90e0622ce5f8b9eeb3ca6a02e85 Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 28 Nov 2018 20:06:16 +0800 Subject: [PATCH] - mtwm WaybillStatusDelivered --- platformapi/mtwmapi/callback.go | 35 ++++++++++++++++++++++++++++++++- platformapi/mtwmapi/order.go | 1 + 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/platformapi/mtwmapi/callback.go b/platformapi/mtwmapi/callback.go index b0df019b..3154517c 100644 --- a/platformapi/mtwmapi/callback.go +++ b/platformapi/mtwmapi/callback.go @@ -1,5 +1,13 @@ package mtwmapi +import ( + "net/http" + "net/url" + "strings" + + "git.rosy.net.cn/baseapi/utils" +) + const ( MsgTypeWaybillStatus = "waybillStatus" MsgTypeNewOrder = "newOrder" @@ -15,15 +23,40 @@ type CallbackResponse struct { Data string `json:"data"` } +// !!!特别注意,Data中的数据 +type CallbackMsg struct { + Data url.Values + Cmd string +} + var ( - SuccessResponse = &CallbackResponse{Data: "ok"} + SuccessResponse = &CallbackResponse{Data: "ok"} + SignatureIsNotOk = &CallbackResponse{Data: "sign failed"} ) func Err2CallbackResponse(err error, data string) *CallbackResponse { if err == nil { return SuccessResponse } + if data == "" { + data = err.Error() + } return &CallbackResponse{ Data: data, } } + +func (a *API) GetCallbackMsg(request *http.Request) (msg *CallbackMsg, callbackResponse *CallbackResponse) { + data := utils.URLValues2Map(request.PostForm) + fullURL := strings.TrimRight(request.URL.String(), "/") + sign := a.signParams(fullURL+"?", data) + if sign != data[signKey] { + return nil, SignatureIsNotOk + } + cmd := strings.Trim(request.URL.EscapedPath(), "/") + msg = &CallbackMsg{ + Cmd: cmd, + Data: request.PostForm, + } + return msg, nil +} diff --git a/platformapi/mtwmapi/order.go b/platformapi/mtwmapi/order.go index 56aa32d1..3731cb4e 100644 --- a/platformapi/mtwmapi/order.go +++ b/platformapi/mtwmapi/order.go @@ -24,6 +24,7 @@ const ( WaybillStatusAccepted = "10" WaybillStatusCourierArrived = "15" WaybillStatusPickedup = "20" + WaybillStatusDelivered = "40" WaybillStatusCanceled = "100" )