update jt express
This commit is contained in:
parent
b15d883542
commit
9e15bfc101
|
@ -10,13 +10,13 @@ import (
|
|||
"git.selly.red/Selly-Modules/3pl/util/pjson"
|
||||
)
|
||||
|
||||
func New(degestKey, companyID string, isProd, debug bool) *Client {
|
||||
func New(digestKey, companyID string, isProd, debug bool) *Client {
|
||||
host := apiHostDev
|
||||
if isProd {
|
||||
host = apiHostProd
|
||||
}
|
||||
c := &Client{
|
||||
DigestKey: degestKey,
|
||||
DigestKey: digestKey,
|
||||
EccompanyID: companyID,
|
||||
IsProduction: isProd,
|
||||
Debug: debug,
|
||||
|
@ -35,71 +35,79 @@ type Client struct {
|
|||
httpClient *resty.Client
|
||||
}
|
||||
|
||||
func (c *Client) EstimateFee(req *EstimateFeeReq) (*EstimateFeeItemRes, error) {
|
||||
func (c *Client) EstimateFee(req *EstimateFeeReq) (r Response) {
|
||||
path := c.host + apiPathEstimateFee
|
||||
data := pjson.ToJSONString(req)
|
||||
body := map[string]string{
|
||||
"logistics_interface": data,
|
||||
"data_digest": c.getDigest(data),
|
||||
"msg_type": msgTypeEstimateFee,
|
||||
"eccompanyid": c.EccompanyID,
|
||||
}
|
||||
r.Request.Body = pjson.ToBytes(body)
|
||||
r.Request.URL = path
|
||||
resp, err := c.httpClient.R().
|
||||
SetFormData(map[string]string{
|
||||
"logistics_interface": data,
|
||||
"data_digest": c.getDigest(data),
|
||||
"msg_type": msgTypeEstimateFee,
|
||||
"eccompanyid": c.EccompanyID,
|
||||
}).
|
||||
SetResult(&EstimateFeeRes{}).
|
||||
SetFormData(body).
|
||||
Post(path)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("jtepxress: request %s, err %v", path, err)
|
||||
r.Error = fmt.Errorf("jtepxress: request %s, err %v", path, err)
|
||||
return r
|
||||
}
|
||||
res := resp.Result().(*EstimateFeeRes)
|
||||
if len(res.ResponseItems) == 0 {
|
||||
return nil, fmt.Errorf("jtepxress: estimate fee empty response")
|
||||
}
|
||||
return res.ResponseItems[0], nil
|
||||
r.Response.StatusCode = resp.StatusCode()
|
||||
r.Response.Body = resp.Body()
|
||||
|
||||
return r
|
||||
}
|
||||
|
||||
func (c *Client) CancelOrder(req *CancelOrderReq) (*CancelOrderRes, error) {
|
||||
func (c *Client) CancelOrder(req *CancelOrderReq) (r Response) {
|
||||
path := c.host + apiPathCancelOrder
|
||||
data := pjson.ToJSONString(req)
|
||||
body := map[string]string{
|
||||
"logistics_interface": data,
|
||||
"data_digest": c.getDigest(data),
|
||||
"msg_type": msgTypeEstimateFee,
|
||||
"eccompanyid": c.EccompanyID,
|
||||
}
|
||||
r.Request.Body = pjson.ToBytes(body)
|
||||
r.Request.URL = path
|
||||
resp, err := c.httpClient.R().
|
||||
SetFormData(map[string]string{
|
||||
"logistics_interface": data,
|
||||
"data_digest": c.getDigest(data),
|
||||
"msg_type": msgTypeEstimateFee,
|
||||
"eccompanyid": c.EccompanyID,
|
||||
}).
|
||||
SetResult(&CancelOrderRes{}).
|
||||
SetFormData(body).
|
||||
Post(path)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("jtepxress: request %s, err %v", path, err)
|
||||
r.Error = fmt.Errorf("jtepxress: request %s, err %v", path, err)
|
||||
return r
|
||||
}
|
||||
res := resp.Result().(*CancelOrderRes)
|
||||
if len(res.ResponseItems) == 0 {
|
||||
return nil, fmt.Errorf("jtepxress: cancel order empty response")
|
||||
}
|
||||
// return res.ResponseItems[0], nil
|
||||
return nil, err
|
||||
|
||||
r.Response.StatusCode = resp.StatusCode()
|
||||
r.Response.Body = resp.Body()
|
||||
|
||||
return r
|
||||
}
|
||||
|
||||
func (c *Client) CreateOrder(req *CreateOrderReq) (*CreateOrderItemRes, error) {
|
||||
func (c *Client) CreateOrder(req *CreateOrderReq) (r Response) {
|
||||
path := c.host + apiPathCreateOrder
|
||||
data := pjson.ToJSONString(req)
|
||||
body := map[string]string{
|
||||
"logistics_interface": data,
|
||||
"data_digest": c.getDigest(data),
|
||||
"msg_type": msgTypeCreateOrder,
|
||||
"eccompanyid": c.EccompanyID,
|
||||
}
|
||||
r.Request.Body = pjson.ToBytes(body)
|
||||
r.Request.URL = path
|
||||
|
||||
resp, err := c.httpClient.R().
|
||||
SetFormData(map[string]string{
|
||||
"logistics_interface": data,
|
||||
"data_digest": c.getDigest(data),
|
||||
"msg_type": msgTypeCreateOrder,
|
||||
"eccompanyid": c.EccompanyID,
|
||||
}).
|
||||
SetResult(&CreateOrderRes{}).
|
||||
SetFormData(body).
|
||||
Post(path)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("jtepxress: request %s, err %v", path, err)
|
||||
r.Error = fmt.Errorf("jtepxress: request %s, err %v", path, err)
|
||||
return r
|
||||
}
|
||||
res := resp.Result().(*CreateOrderRes)
|
||||
if len(res.ResponseItems) == 0 {
|
||||
return nil, fmt.Errorf("jtepxress: create order empty response")
|
||||
}
|
||||
return res.ResponseItems[0], nil
|
||||
|
||||
r.Response.StatusCode = resp.StatusCode()
|
||||
r.Response.Body = resp.Body()
|
||||
|
||||
return r
|
||||
}
|
||||
|
||||
func (c *Client) getDigest(data string) string {
|
||||
|
|
|
@ -9,7 +9,6 @@ type EstimateFeeLocation struct {
|
|||
type EstimateFeeReq struct {
|
||||
SelfAddress int `json:"selfAddress"`
|
||||
ProductType string `json:"producttype"`
|
||||
CusName string `json:"cusname"`
|
||||
GoodsValue string `json:"goodsvalue"`
|
||||
ItemsValue string `json:"itemsvalue"`
|
||||
Weight string `json:"weight"`
|
||||
|
|
|
@ -41,3 +41,21 @@ type CancelOrderRes struct {
|
|||
LogisticProviderID string `json:"logisticproviderid"`
|
||||
ResponseItems []*CreateOrderItemRes `json:"responseitems"`
|
||||
}
|
||||
|
||||
type Response struct {
|
||||
Request RequestInfo
|
||||
Response ResponseInfo
|
||||
Error error
|
||||
}
|
||||
|
||||
type ResponseInfo struct {
|
||||
StatusCode int
|
||||
Body []byte
|
||||
}
|
||||
|
||||
type RequestInfo struct {
|
||||
Method string
|
||||
URL string
|
||||
Headers map[string]string
|
||||
Body []byte
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue