Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
5574b1ba4e | ||
![]() |
0b6b76c708 | ||
![]() |
4c27cecde1 | ||
![]() |
1b97811c6a | ||
![]() |
2483d9c305 | ||
![]() |
e936dd6622 | ||
![]() |
3e765809e1 | ||
![]() |
ecfa733a9b |
@@ -1,7 +1,7 @@
|
||||
package weipinshang_api
|
||||
|
||||
type CreateAfsApplyReq struct {
|
||||
McOrderNo int `json:"mcOrderNo"` // 子订单号 是 int 下单时候返回子订单号 20190704124955600363
|
||||
McOrderNo string `json:"mcOrderNo"` // 子订单号 是 int 下单时候返回子订单号 20190704124955600363
|
||||
CustomerExpect int `json:"customerExpect"` // 售后类型 是 int [退货(10)、仅退款(40)] 10
|
||||
QuestionDesc string `json:"questionDesc"` // 原因描述 否 String [产品问题描述,最多600字符] 看下面请求示例
|
||||
QuestionPic string `json:"questionPic"` //问题描述图片 否 String [问题描述图片.最多2000字符] 支持多张图片,用逗号分隔(英文逗号)
|
||||
@@ -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 {
|
||||
|
@@ -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 {
|
||||
|
@@ -5,6 +5,7 @@ import (
|
||||
"crypto/md5"
|
||||
"encoding/hex"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
@@ -143,11 +144,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
|
||||
@@ -197,7 +196,7 @@ func (w *WeiPinShangClient) CreateAfsApply(createAfsApplyReq *CreateAfsApplyReq)
|
||||
paramMap["pickwareCounty"] = createAfsApplyReq.PickwareCounty
|
||||
paramMap["pickwareAddress"] = createAfsApplyReq.PickwareAddress
|
||||
|
||||
postRes, err := w.WPSPost("mcang/Refunds/IsRefund", paramMap)
|
||||
postRes, err := w.WPSPost("mcang/Refunds/createAfsApply", paramMap)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -214,7 +213,7 @@ func (w *WeiPinShangClient) OrderCancel(mcOrderNo string) (res *OrderCancelRes,
|
||||
fmt.Println("mcOrderNo", mcOrderNo)
|
||||
paramMap := make(map[string]any)
|
||||
paramMap["mcOrderNo"] = mcOrderNo
|
||||
postRes, err := w.WPSPost("mcang/Refunds/IsRefund", paramMap)
|
||||
postRes, err := w.WPSPost("mcang/Refunds/orderCancel", paramMap)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -227,6 +226,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 {
|
||||
@@ -278,7 +298,7 @@ func (w *WeiPinShangClient) WPSPost(url string, paramMap map[string]any) (res []
|
||||
fmt.Printf("res: %s\n", string(res))
|
||||
|
||||
if !json.Valid(res) {
|
||||
return nil, fmt.Errorf("响应不是有效的JSON格式: %s", string(res))
|
||||
return nil, errors.New("响应体不是有效的JSON格式")
|
||||
}
|
||||
|
||||
return
|
||||
|
@@ -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: "mc20250616115732440085",
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -292,7 +292,7 @@ func TestWeiPinShangClient_GetOrderInfoByThirdNO(t *testing.T) {
|
||||
Key: "f654ea5bde7635c3f46191191e5c4c8e",
|
||||
},
|
||||
args: args{
|
||||
orderNo: "20250527172503439229",
|
||||
orderNo: "570872619444771455",
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -339,7 +339,7 @@ func TestWeiPinShangClient_IsRefund(t *testing.T) {
|
||||
Key: "f654ea5bde7635c3f46191191e5c4c8e",
|
||||
},
|
||||
args: args{
|
||||
mcOrderNo: "mc20250529102347907570",
|
||||
mcOrderNo: "mc20250613182629112823",
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -362,6 +362,108 @@ 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)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestWeiPinShangClient_CreateAfsApply(t *testing.T) {
|
||||
type fields struct {
|
||||
Host string
|
||||
ChannelType string
|
||||
Key string
|
||||
}
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
fields fields
|
||||
args CreateAfsApplyReq
|
||||
wantRes *IsRefundRes
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "test1",
|
||||
fields: fields{
|
||||
Host: "https://uat.api.weipinshang.net/",
|
||||
ChannelType: "AILEHUI",
|
||||
Key: "f654ea5bde7635c3f46191191e5c4c8e",
|
||||
},
|
||||
args: CreateAfsApplyReq{
|
||||
CustomerContactName: "钟",
|
||||
CustomerExpect: 10,
|
||||
CustomerMobilePhone: "15375399426",
|
||||
CustomerTel: "15375399426",
|
||||
McOrderNo: "mc20250613182629112823",
|
||||
PickwareAddress: "奥园",
|
||||
PickwareCity: "广州",
|
||||
PickwareCounty: "番禺",
|
||||
PickwareProvince: "广东",
|
||||
QuestionDesc: "商品问题",
|
||||
QuestionPic: "11",
|
||||
},
|
||||
},
|
||||
}
|
||||
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.CreateAfsApply(&test.args)
|
||||
|
||||
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) {
|
||||
@@ -386,7 +488,7 @@ func TestWeiPinShangClient_DeliverGoods(t *testing.T) {
|
||||
Key: "f654ea5bde7635c3f46191191e5c4c8e",
|
||||
},
|
||||
args: DeliverGoodsReq{
|
||||
COrderItemNo: "mc20250527172503957733",
|
||||
COrderItemNo: "mc20250613182629112823",
|
||||
CDeliveryName: "顺丰",
|
||||
CDeliveryNo: "1234567890",
|
||||
},
|
||||
@@ -400,9 +502,9 @@ func TestWeiPinShangClient_DeliverGoods(t *testing.T) {
|
||||
Key: "f654ea5bde7635c3f46191191e5c4c8e",
|
||||
},
|
||||
args: DeliverGoodsReq{
|
||||
COrderItemNo: "mc20250527172503673418",
|
||||
CDeliveryName: "京东",
|
||||
CDeliveryNo: "1234567890",
|
||||
COrderItemNo: "mc20250616113428587322",
|
||||
CDeliveryName: "顺丰0",
|
||||
CDeliveryNo: "SF9900000099",
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -446,7 +548,7 @@ func TestWeiPinShangClient_UpdateService(t *testing.T) {
|
||||
Key: "f654ea5bde7635c3f46191191e5c4c8e",
|
||||
},
|
||||
args: UpdateServiceReq{
|
||||
COrderItemNo: "20250527172503439229",
|
||||
COrderItemNo: "mc20250612153935670660",
|
||||
CType: "1",
|
||||
},
|
||||
},
|
||||
@@ -459,8 +561,8 @@ func TestWeiPinShangClient_UpdateService(t *testing.T) {
|
||||
Key: "f654ea5bde7635c3f46191191e5c4c8e",
|
||||
},
|
||||
args: UpdateServiceReq{
|
||||
COrderItemNo: "10000000000",
|
||||
CType: "2",
|
||||
COrderItemNo: "mc20250609180246814560",
|
||||
CType: "3",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
Reference in New Issue
Block a user