Files
baseapi/platformapi/uuptapi/waybill.go
richboo111 1a2d0d7059 1
2023-03-09 18:13:04 +08:00

99 lines
2.7 KiB
Go

package uuptapi
import (
"encoding/json"
"fmt"
"git.rosy.net.cn/baseapi/utils"
)
//计算订单价格
func (a *API) GetOrderPrice(req map[string]interface{}) (*GetOrderPriceResp, error) {
preParam := a.MakeUURequestHead()
resp, err := a.AccessAPI(BaseURL, "getorderprice.ashx", RequestPost, utils.MergeMaps(preParam, req))
if err != nil {
return nil, err
}
if resp["return_code"] != ReturnSuccess {
return nil, fmt.Errorf("UU跑腿获取运单价格失败:%s", resp["return_msg"])
}
retVal := GetOrderPriceResp{}
if temp, err := json.Marshal(resp); err == nil {
err = json.Unmarshal(temp, &retVal)
}
con := retVal != GetOrderPriceResp{}
if con {
return &retVal, nil
} else {
return nil, fmt.Errorf("UU跑腿未返回运单价格")
}
}
//发布订单
func (a *API) AddOrder(req map[string]interface{}) (orderCode, originID string, err error) {
preParam := a.MakeUURequestHead()
resp, err := a.AccessAPI(BaseURL, "addorder.ashx", RequestPost, utils.MergeMaps(preParam, req))
if err != nil {
return "", "", err
}
if resp["return_code"] != ReturnSuccess {
return "", "", fmt.Errorf("UU跑腿发布运单失败:%s", resp["return_msg"])
}
retVal := AddOrderResp{}
if temp, err := json.Marshal(resp); err == nil {
err = json.Unmarshal(temp, &retVal)
}
con := retVal != AddOrderResp{}
if con {
return retVal.OrderCode, retVal.OriginID, nil
} else {
return "", "", fmt.Errorf("UU跑腿未返回运单ID")
}
}
//查询订单信息
func (a *API) GetOrderDetail(orderCode string) (*GetOrderDetailResp, error) {
preParam := a.MakeUURequestHead()
preParam["order_code"] = orderCode
resp, err := a.AccessAPI(BaseURL, "getorderdetail.ashx", RequestPost, preParam)
if err != nil {
return nil, err
}
if resp["return_code"] != ReturnSuccess {
return nil, fmt.Errorf("UU跑腿获取运单详情失败:%s", resp["return_msg"])
}
retVal := GetOrderDetailResp{}
if temp, err := json.Marshal(resp); err == nil {
err = json.Unmarshal(temp, &retVal)
}
con := retVal != GetOrderDetailResp{}
if con {
return &retVal, nil
} else {
return nil, fmt.Errorf("UU跑腿未返回运单详情")
}
}
//取消订单
func (a *API) CancelOrder(orderCode, reason string) error {
preParam := a.MakeUURequestHead()
preParam["order_code"] = orderCode
preParam["reason"] = reason
resp, err := a.AccessAPI(BaseURL, "cancelorder.ashx", RequestPost, preParam)
if err != nil {
return err
}
if resp["return_code"] != ReturnSuccess {
return fmt.Errorf("UU跑腿取消运单失败:%s", resp["return_msg"])
}
retVal := CancelOrderResp{}
if temp, err := json.Marshal(resp); err == nil {
err = json.Unmarshal(temp, &retVal)
}
con := retVal != CancelOrderResp{}
if con {
return nil
} else {
return fmt.Errorf("UU跑腿未返回取消运单详情")
}
}