package uuptapi import ( "encoding/json" "fmt" "git.rosy.net.cn/baseapi/utils" "io/ioutil" "net/http" ) const ( uuCallbackURL = "http://callback.jxc4.com/UuPt/UuWaybillCallback" //uu跑腿订单回调地址 ) //var ( // SuccessResponse = &CallbackResponse{ReturnCode: "ok"} // FailResponse = &CallbackResponse{ReturnCode: "fail"} //) type CallbackResponse struct { ReturnCode string `json:"return_code"` ReturnMsg string `json:"return_msg"` } func Err2CallbackResponse(err error) *CallbackResponse { if err == nil { return &CallbackResponse{ ReturnCode: ReturnSuccess, //ReturnMsg: ReturnSuccessMsg, } } return &CallbackResponse{ ReturnCode: ReturnFail, ReturnMsg: utils.Format4Output(err, false), } } //订单提交后状态变化回调 func (a *API) WaybillCallback(request *http.Request) (*WaybillCallbackParam, *CallbackResponse) { resp, err := ioutil.ReadAll(request.Body) if err != nil { return nil, Err2CallbackResponse(err) } retVal := WaybillCallbackParam{} if err := json.Unmarshal(resp, &retVal); err != nil { return nil, Err2CallbackResponse(err) } con := retVal != WaybillCallbackParam{} if con { return &retVal, Err2CallbackResponse(nil) } else { return nil, Err2CallbackResponse(fmt.Errorf("UU跑腿运单回调信息为空")) } }