From 1b97811c6a9a6abd6518713af4becf11d7c53f87 Mon Sep 17 00:00:00 2001 From: zhongqiang <15375399426> Date: Wed, 4 Jun 2025 11:00:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E6=96=B0=E4=BE=9B=E5=BA=94?= =?UTF-8?q?=E9=93=BE-=E5=94=AF=E5=93=81=E5=B0=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- weipinshang_api/req.go | 8 +++ weipinshang_api/res.go | 5 ++ weipinshang_api/wei_pin_shang_client.go | 29 +++++++-- weipinshang_api/wei_pin_shang_client_test.go | 63 +++++++++++++++++--- 4 files changed, 92 insertions(+), 13 deletions(-) diff --git a/weipinshang_api/req.go b/weipinshang_api/req.go index 745a903..50df1de 100644 --- a/weipinshang_api/req.go +++ b/weipinshang_api/req.go @@ -46,6 +46,14 @@ type CreateOrderReq struct { NoticeUrl string `json:"noticeUrl"` //合作方通知地址 noticeUrl 否 String 规定值 如支持,订单更新实时通知。此参数可不用传,统一走异步回调 } +type RefundDeliveryReq struct { + McOrderNo string `json:"mcOrderNo"` // 子订单号 是 int 下单时候返回子订单号 20190704124955600363 + DeliveryName string `json:"deliveryName"` // 快递公司 + DeliveryNo string `json:"deliveryNo"` // 快递单号 + Freight string `json:"freight"` // 运费金额 freight 否 string 单位:元 + FreightImg string `json:"freightImg"` // 运费支付凭证 freightImg 否 string 图片地址 +} + // test ------------------------------------------------ type DeliverGoodsReq struct { diff --git a/weipinshang_api/res.go b/weipinshang_api/res.go index 463b535..11f9ef4 100644 --- a/weipinshang_api/res.go +++ b/weipinshang_api/res.go @@ -125,6 +125,11 @@ type OrderCancelRes struct { Msg string `json:"msg"` // 请求接口消息 } +type RefundDeliveryRes struct { + Code int `json:"code"` // 0为成功,其它为失败 + Msg string `json:"msg"` // 请求接口消息 +} + // test ------------------------------------- type TestRes struct { diff --git a/weipinshang_api/wei_pin_shang_client.go b/weipinshang_api/wei_pin_shang_client.go index bb918ca..7a26431 100644 --- a/weipinshang_api/wei_pin_shang_client.go +++ b/weipinshang_api/wei_pin_shang_client.go @@ -143,11 +143,9 @@ func (w *WeiPinShangClient) GetOrderInfoByThirdNO(orderNo string) (res *GetOrder func (w *WeiPinShangClient) GetOrderInfoByItemNO(mcOrderNo string) (res *GetOrderInfoByItemNORes, err error) { fmt.Println("mcOrderNo", mcOrderNo) - //paramMap := make(map[string]any) - //paramMap["mcOrderNo"] = mcOrderNo - paramMap := map[string]any{ - "mcOrderNo": mcOrderNo, - } + paramMap := make(map[string]any) + paramMap["mcOrderNo"] = mcOrderNo + postRes, err := w.WPSPost("mcang/Order/getOrderInfoByItemNO", paramMap) if err != nil { return @@ -227,6 +225,27 @@ func (w *WeiPinShangClient) OrderCancel(mcOrderNo string) (res *OrderCancelRes, return } +func (w *WeiPinShangClient) RefundDelivery(refundDeliveryReq RefundDeliveryReq) (res *RefundDeliveryRes, err error) { + fmt.Println("refundDeliveryReq", refundDeliveryReq) + paramMap := make(map[string]any) + paramMap["mcOrderNo"] = refundDeliveryReq.McOrderNo + paramMap["deliveryName"] = refundDeliveryReq.DeliveryName + paramMap["deliveryNo"] = refundDeliveryReq.DeliveryNo + paramMap["freight"] = refundDeliveryReq.Freight + paramMap["freightImg"] = refundDeliveryReq.FreightImg + postRes, err := w.WPSPost("mcang/Refunds/refundDelivery", paramMap) + if err != nil { + return + } + + err = json.Unmarshal(postRes, &res) + if err != nil || res == nil { + err = fmt.Errorf("转换RefundDeliveryRes结构体失败: %s", string(postRes)) + return + } + return +} + func (w *WeiPinShangClient) Sign(paramMap map[string]any) (res string, err error) { var sumParamString string if len(paramMap) != 0 { diff --git a/weipinshang_api/wei_pin_shang_client_test.go b/weipinshang_api/wei_pin_shang_client_test.go index d7dd8c7..3be7a03 100644 --- a/weipinshang_api/wei_pin_shang_client_test.go +++ b/weipinshang_api/wei_pin_shang_client_test.go @@ -80,14 +80,14 @@ func TestWeiPinShangClient_PreOrder(t *testing.T) { Key: "f654ea5bde7635c3f46191191e5c4c8e", }, args: PreOrderReq{ - GoodsInfo: "[{\"goodsId\":\"WPS9_282520\",\"goodSpecId\":\"WPS9_1221183858889276\",\"num\":2},{\"goodsId\":\"WPS2_0213160707208717\",\"goodSpecId\":\"WPS2_0213160707965791\",\"num\":2}]", + GoodsInfo: "[{\"goodsId\":\"WPS9_282520\",\"goodSpecId\":\"WPS9_1221183858889276\",\"num\":2}]", Province: "广东省", Address: "奥园", City: "广州市", Area: "番禺区", ConsigneePhone: "15375390426", ConsigneeContacts: "张三", - LockCode: "L0123456789", + LockCode: "L100000000", Source: "AILEHUI", }, }, @@ -135,8 +135,8 @@ func TestWeiPinShangClient_CreateOrder(t *testing.T) { Key: "f654ea5bde7635c3f46191191e5c4c8e", }, args: CreateOrderReq{ - LockCode: "L0123456789", - OrderNo: "20000000000", + LockCode: "L100000000", + OrderNo: "30000000000", }, }, } @@ -233,7 +233,7 @@ func TestWeiPinShangClient_GetOrderInfoByItemNO(t *testing.T) { }, args: args{ //mcOrderNo: "mc20250527174640537475", - mcOrderNo: "mc20250529102347907570", + mcOrderNo: "mc20250529102347485667", }, }, } @@ -362,6 +362,53 @@ func TestWeiPinShangClient_IsRefund(t *testing.T) { } } +func TestWeiPinShangClient_OrderCancel(t *testing.T) { + type fields struct { + Host string + ChannelType string + Key string + } + type args struct { + mcOrderNo string + } + tests := []struct { + name string + fields fields + args args + wantRes *IsRefundRes + wantErr bool + }{ + { + name: "test1", + fields: fields{ + Host: "https://uat.api.weipinshang.net/", + ChannelType: "AILEHUI", + Key: "f654ea5bde7635c3f46191191e5c4c8e", + }, + args: args{ + mcOrderNo: "mc20250529102347485667", + }, + }, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + h := &WeiPinShangClient{ + Host: test.fields.Host, + ChannelType: test.fields.ChannelType, + Key: test.fields.Key, + } + + gotRes, err := h.OrderCancel(test.args.mcOrderNo) + + log.Println(gotRes, err) + + if (err != nil) != test.wantErr { + t.Errorf("GetManyPostage() error = %v, wantErr %v", err, test.wantErr) + } + }) + } +} + // test --------------------------------------------------- func TestWeiPinShangClient_DeliverGoods(t *testing.T) { @@ -400,7 +447,7 @@ func TestWeiPinShangClient_DeliverGoods(t *testing.T) { Key: "f654ea5bde7635c3f46191191e5c4c8e", }, args: DeliverGoodsReq{ - COrderItemNo: "mc20250527172503673418", + COrderItemNo: "mc20250530115549372224", CDeliveryName: "京东", CDeliveryNo: "1234567890", }, @@ -459,8 +506,8 @@ func TestWeiPinShangClient_UpdateService(t *testing.T) { Key: "f654ea5bde7635c3f46191191e5c4c8e", }, args: UpdateServiceReq{ - COrderItemNo: "10000000000", - CType: "2", + COrderItemNo: "mc20250530172009173148", + CType: "3", }, }, }