From 1afd29f098dc19e0dadf60dbeca0f80778e33b61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 6 Apr 2022 16:33:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=BF=90=E5=8D=95id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platformapi/fnpsapi/fn_test.go | 2 +- platformapi/fnpsapi/fnps_v3.go | 9 +++++++-- platformapi/fnpsapi/order.go | 17 ++++++++++++----- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/platformapi/fnpsapi/fn_test.go b/platformapi/fnpsapi/fn_test.go index 341efd7e..fc772efb 100644 --- a/platformapi/fnpsapi/fn_test.go +++ b/platformapi/fnpsapi/fn_test.go @@ -45,7 +45,7 @@ func TestCreateOrder(t *testing.T) { //{"白菜2", 1, 100, 100, "30012", 1, "备注:大白菜2"}, // {"白菜3", 1, 100, 100, "1004", 1, "备注:大白菜2"}, } - err = api.CreateOrder(&CreateOrderReqParam{ + _, err = api.CreateOrder(&CreateOrderReqParam{ PartnerOrderCode: "232232992229uue21", OrderType: 1, PositionSource: 3, diff --git a/platformapi/fnpsapi/fnps_v3.go b/platformapi/fnpsapi/fnps_v3.go index a3b14709..395b5146 100644 --- a/platformapi/fnpsapi/fnps_v3.go +++ b/platformapi/fnpsapi/fnps_v3.go @@ -275,7 +275,7 @@ type CreateOrderReqParam struct { // 必传参数 PartnerOrderCode string `json:"partner_order_code,omitempty"` // 外部订单号 OrderType int `json:"order_type,omitempty"` // 订单类型(1:即时单,3:预约单) - PositionSource int `json:"position_source,omitempty"` // 坐标经纬度来源(1:腾讯地 图, 2:百度地图, 3:高德地图)蜂鸟建议使用高德地图 + PositionSource int `json:"position_source,omitempty"` // 坐标经纬度来源(1:腾讯地 图, 2:百度地图, 3:高德地图)蜂鸟建议使用高德地图 ReceiverAddress string `json:"receiver_address,omitempty"` // 收货人地址 文字描述 ReceiverLongitude float64 `json:"receiver_longitude,omitempty"` // 收货人经度 ReceiverLatitude float64 `json:"receiver_latitude,omitempty"` // 收货人纬度 @@ -315,6 +315,11 @@ type CreateOrderReqParam struct { FetchCode string `json:"fetch_code,omitempty"` // 取餐码 骑手和用户交互 } +// 创建订单返回值 +type CreateOrderRes struct { + OrderId string `json:"order_id"` // 运单id +} + // 查询余额getAmount type GetBalanceAmountRes struct { BalanceAmountCent int64 `json:"balance_amount_cent"` // 账户余额 分 @@ -416,9 +421,9 @@ type PreCancelOrderReq struct { type CancelOrderReq struct { GetOrderDetailReq OrderCancelCode int64 `json:"order_cancel_code"` // 从可用取消原因列表接口返回结果选择(必填) + OrderCancelRole int `json:"order_cancel_role"` // 1商户取消, 2 用户取消(必填) ActualCancelCostCent int64 `json:"actual_cancel_cost_cent"` // 单位分 取消实际需扣金额,从预取消接口拿(非必填) OrderCancelOtherReason string `json:"order_cancel_other_reason"` // 取消原因补充 20字以内(非必填) - OrderCancelRole int `json:"order_cancel_role"` // 1商户取消, 2 用户取消(必填) } //#endregion diff --git a/platformapi/fnpsapi/order.go b/platformapi/fnpsapi/order.go index 14efd13f..b3749dc6 100644 --- a/platformapi/fnpsapi/order.go +++ b/platformapi/fnpsapi/order.go @@ -70,15 +70,22 @@ func (a *API) PreCreateByShopFn(basicParams *PreCreateOrder) (deliveryFee, baseD } // 蜂鸟正式下单 -func (a *API) CreateOrder(createOrderParam *CreateOrderReqParam) (err error) { +func (a *API) CreateOrder(createOrderParam *CreateOrderReqParam) (result string, err error) { orderHead := a.MakeFnRequestHead() bytes, err := json.Marshal(createOrderParam) if err != nil { - return err + return "", err } orderHead["business_data"] = string(bytes) - _, err = a.AccessAPI(ApiURL, "createOrder", RequestPost, orderHead) - return err + resultData, err := a.AccessAPI(ApiURL, "createOrder", RequestPost, orderHead) + if orderId, ok := resultData["business_data"]; ok { + res := &CreateOrderRes{} + if err := json.Unmarshal([]byte(utils.Interface2String(orderId)), res); err != nil { + return "", err + } + return res.OrderId, nil + } + return "", err } // addTip 加小费接口 @@ -157,7 +164,7 @@ func (a *API) CancelOrder(req *CancelOrderReq) (err error) { return errors.New("内部订单号或者外部订单号比填写一个") } if req.OrderCancelCode == 0 && req.OrderCancelOtherReason == "" { - return errors.New("请补充退单原因") + req.OrderCancelOtherReason = "占时不想要了" } orderHead := a.MakeFnRequestHead()