提交 1b1697b4 authored 作者: zhanglibo's avatar zhanglibo

唯品会

上级 c21afef1
......@@ -76,7 +76,6 @@ func sign(param *QueryParam, req string) string {
}
}
signStr += req
g.Dump(signStr)
h := hmac.New(md5.New, []byte(server.AppSecret))
h.Write([]byte(signStr))
u.Set("sign", gstr.ToUpper(hex.EncodeToString(h.Sum([]byte("")))))
......
......@@ -2,6 +2,8 @@ package wpc
import (
"context"
"github.com/gogf/gf/encoding/gjson"
"github.com/gogf/gf/frame/g"
)
type addressWpc struct {
......@@ -9,20 +11,69 @@ type addressWpc struct {
var Address = addressWpc{}
type ParseRes struct {
NationId string `json:"nationId"` //国家ID
Nation string `json:"nation"` //国家名称
ProvinceId int `json:"provinceId"` //一级地址ID
Province string `json:"province"` //一级地址名称
CityId int `json:"cityId"` //二级地址ID
City string `json:"city"` //二级地址名称
CountyId int `json:"countyId"` //三级地址ID
County string `json:"county"` //三级地址名称
TownId int `json:"townId"` //四级地址ID
Town string `json:"town"` //四级地址名称
type AddressListReq struct {
ChannelId string `json:"vopChannelId"`
UserNumber string `json:"userNumber"`
AreaCode string `json:"areaCode,omitempty"`
}
//Parse 地址详情转换京东地址编码
func (*addressWpc) Parse(ctx context.Context, address string) (res *ParseRes, err error) {
type AddressListRes struct {
ReturnCode string `json:"returnCode"`
ReturnMessage string `json:"returnMessage"`
Result struct {
ChildList []struct {
AreaCode string `json:"areaCode"`
AreaName string `json:"areaName"`
} `json:"childList"`
Info struct {
AreaCode string `json:"areaCode"`
AreaName string `json:"areaName"`
} `json:"info"`
} `json:"result"`
}
func (*addressWpc) List(ctx context.Context, req AddressListReq) (res *AddressListRes, err error) {
method := "selectAddress"
req.ChannelId = server.AppKey
req.UserNumber = server.UserNumber
result, err := post(ctx, method, g.Map{
"request": req,
})
_ = gjson.New(result).Scan(&res)
return
}
type AddressParseReq struct {
ChannelId string `json:"vopChannelId"`
UserNumber string `json:"userNumber"`
FullAddress string `json:"fullAddress"`
}
type AddressParseRes struct {
ReturnCode string `json:"returnCode"`
ReturnMessage string `json:"returnMessage"`
Result struct {
AreaCode string `json:"areaCode"`
TownName string `json:"townName"`
CityName string `json:"cityName"`
AreaName string `json:"areaName"`
TownCode string `json:"townCode"`
ProvinceCode string `json:"provinceCode"`
CityCode string `json:"cityCode"`
ProvinceName string `json:"provinceName"`
} `json:"result"`
}
//Parse 解析地址
func (*addressWpc) Parse(ctx context.Context, addr string) (res *AddressParseRes, err error) {
method := "smartAddress"
req := AddressParseReq{}
req.ChannelId = server.AppKey
req.UserNumber = server.UserNumber
req.FullAddress = addr
result, err := post(ctx, method, g.Map{
"request": req,
})
_ = gjson.New(result).Scan(&res)
return
}
......@@ -24,7 +24,7 @@ type BrandListRes struct {
}
//List 列表
func (brandWpc) List(ctx context.Context, req BrandListReq) (res *BrandListRes, err error) {
func (*brandWpc) List(ctx context.Context, req BrandListReq) (res *BrandListRes, err error) {
method := "getBrandList"
req.ChannelId = server.AppKey
req.UserNumber = server.UserNumber
......@@ -132,7 +132,7 @@ type BrandPreListRes struct {
}
//PreList 预告品牌列表
func (brandWpc) PreList(ctx context.Context, req BrandPreListReq) (res *BrandPreListRes, err error) {
func (*brandWpc) PreList(ctx context.Context, req BrandPreListReq) (res *BrandPreListRes, err error) {
method := "getPreBrandList"
req.ChannelId = server.AppKey
req.UserNumber = server.UserNumber
......
package wpc
import (
"context"
"github.com/gogf/gf/encoding/gjson"
"github.com/gogf/gf/frame/g"
)
type commonWpc struct {
}
var Common = commonWpc{}
type CommonUploadReq struct {
ChannelId string `json:"vopChannelId"`
UserNumber string `json:"userNumber"`
Image string `json:"imageBase64String"`
FileName string `json:"fileName,omitempty"`
}
type CommonUploadRes struct {
ReturnCode string `json:"returnCode"`
ReturnMessage string `json:"returnMessage"`
Result struct {
Url string
} `json:"result"`
}
//Upload 上传图片
func (*commonWpc) Upload(ctx context.Context, req CommonUploadReq) (res *CommonUploadRes, err error) {
method := "commonUploadImg4Ugc"
req.ChannelId = server.AppKey
req.UserNumber = server.UserNumber
result, err := post(ctx, method, g.Map{
"request": req,
})
_ = gjson.New(result).Scan(&res)
return
}
......@@ -25,8 +25,8 @@ type DeliverListRes struct {
} `json:"result"`
}
//List 列表
func (deliverWpc) List(ctx context.Context) (res *DeliverListRes, err error) {
//List 物流公司
func (*deliverWpc) List(ctx context.Context) (res *DeliverListRes, err error) {
method := "getCarrierList"
req := DeliverListReq{}
req.ChannelId = server.AppKey
......@@ -37,3 +37,27 @@ func (deliverWpc) List(ctx context.Context) (res *DeliverListRes, err error) {
_ = gjson.New(result).Scan(&res)
return
}
type DeliverTrackReq struct {
ChannelId string `json:"vopChannelId"`
UserNumber string `json:"userNumber"`
OrderSn string `json:"orderSn"`
}
type DeliverTrackRes struct {
ReturnCode string `json:"returnCode"`
ReturnMessage string `json:"returnMessage"`
Result interface{} `json:"result"`
}
//Track 物流轨迹
func (*deliverWpc) Track(ctx context.Context, req DeliverTrackReq) (res *DeliverTrackRes, err error) {
method := "getOrderTrackV2"
req.ChannelId = server.AppKey
req.UserNumber = server.UserNumber
result, err := post(ctx, method, g.Map{
"request": req,
})
_ = gjson.New(result).Scan(&res)
return
}
......@@ -27,7 +27,7 @@ type GoodsListRes struct {
}
//List 列表
func (goodsWpc) List(ctx context.Context, req GoodsListReq) (res *GoodsListRes, err error) {
func (*goodsWpc) List(ctx context.Context, req GoodsListReq) (res *GoodsListRes, err error) {
method := "getGoodsList"
req.ChannelId = server.AppKey
req.UserNumber = server.UserNumber
......@@ -63,7 +63,7 @@ type GoodsStockRes struct {
}
//Stock 库存
func (goodsWpc) Stock(ctx context.Context, req GoodsStockReq) (res *GoodsStockRes, err error) {
func (*goodsWpc) Stock(ctx context.Context, req GoodsStockReq) (res *GoodsStockRes, err error) {
method := "getGoodsStock"
req.ChannelId = server.AppKey
req.UserNumber = server.UserNumber
......@@ -89,7 +89,7 @@ type GoodsDetailRes struct {
}
//Detail 详情
func (goodsWpc) Detail(ctx context.Context, req GoodsDetailReq) (res *GoodsDetailRes, err error) {
func (*goodsWpc) Detail(ctx context.Context, req GoodsDetailReq) (res *GoodsDetailRes, err error) {
method := "getGoodsDetail"
req.ChannelId = server.AppKey
req.UserNumber = server.UserNumber
......@@ -114,7 +114,7 @@ type GoodsStatusRes struct {
}
//Status 批量查询商品状态
func (goodsWpc) Status(ctx context.Context, req GoodsStatusReq) (res *GoodsStatusRes, err error) {
func (*goodsWpc) Status(ctx context.Context, req GoodsStatusReq) (res *GoodsStatusRes, err error) {
method := "getGoodsStatus"
req.ChannelId = server.AppKey
req.UserNumber = server.UserNumber
......@@ -139,7 +139,7 @@ type GoodsSizeStatusRes struct {
}
//SizeStatus 批量查询尺码状态
func (goodsWpc) SizeStatus(ctx context.Context, req GoodsSizeStatusReq) (res *GoodsSizeStatusRes, err error) {
func (*goodsWpc) SizeStatus(ctx context.Context, req GoodsSizeStatusReq) (res *GoodsSizeStatusRes, err error) {
method := "getSizeStatus"
req.ChannelId = server.AppKey
req.UserNumber = server.UserNumber
......@@ -164,7 +164,7 @@ type GoodsOnlineRes struct {
}
//Online 批量查询商品上下架
func (goodsWpc) Online(ctx context.Context, req GoodsOnlineReq) (res *GoodsOnlineRes, err error) {
func (*goodsWpc) Online(ctx context.Context, req GoodsOnlineReq) (res *GoodsOnlineRes, err error) {
method := "getGoodsOnline"
req.ChannelId = server.AppKey
req.UserNumber = server.UserNumber
......
......@@ -20,6 +20,7 @@ type OrderListReq struct {
type OrderListRes struct {
}
//List 列表
func (orderWpc) List(ctx context.Context, req OrderListReq) (res *OrderListRes, err error) {
method := "getSimpleOrderListV2"
req.ChannelId = server.AppKey
......@@ -30,3 +31,84 @@ func (orderWpc) List(ctx context.Context, req OrderListReq) (res *OrderListRes,
_ = gjson.New(result).Scan(&res)
return
}
type OrderDetailReq struct {
ChannelId string `json:"vopChannelId"`
UserNumber string `json:"userNumber"`
}
type OrderDetailRes struct {
ReturnCode string `json:"returnCode"`
ReturnMessage string `json:"returnMessage"`
Result interface{} `json:"result"`
}
//Detail 详情
func (orderWpc) Detail(ctx context.Context, req OrderDetailReq) (res *OrderDetailRes, err error) {
method := "getOrderDetail"
req.ChannelId = server.AppKey
req.UserNumber = server.UserNumber
result, err := post(ctx, method, g.Map{
"request": req,
})
_ = gjson.New(result).Scan(&res)
return
}
type OrderCreateReq struct {
ChannelId string `json:"vopChannelId"`
UserNumber string `json:"userNumber"`
AreaId string `json:"areaId,omitempty"`
ProvinceName string `json:"provinceName,omitempty"`
CityName string `json:"cityName,omitempty"`
AreaName string `json:"areaName,omitempty"`
TownName string `json:"townName,omitempty"`
Address string `json:"address"`
Consignee string `json:"consignee"`
Mobile string `json:"mobile"`
OrderSn string `json:"channelOrderSn"`
IsUseCipher string `json:"isUseCipher"`
AddressCipher string `json:"addressCipher,omitempty"` //详细地址加密, 加密类型:RSA2048
ConsigneeCipher string `json:"consigneeCipher,omitempty"` //收件人加密, 加密类型:RSA2048
MobileCipher string `json:"mobileCipher,omitempty"` //收件人手机号加密, 加密类型:RSA2048
SizeInfo string `json:"sizeInfo"`
}
type OrderCreateSizeInfo struct {
AdID int `json:"adId"`
SizeID int64 `json:"sizeId"`
SizeNum int `json:"sizeNum"`
CouponCode string `json:"couponCode"`
}
type OrderCreateRes struct {
ReturnCode string `json:"returnCode"`
ReturnMessage string `json:"returnMessage"`
Result struct {
Orders []struct {
OrderSn string
IsUseCoupon bool
}
CouponList []struct {
CouponNo string
CouponSn string
OrderSn string
GetCouponStatus int
GetCouponReason string
UseCouponStatus int
UseCouponReason string
}
} `json:"result"`
}
//Create 下单
func (orderWpc) Create(ctx context.Context, req OrderCreateReq) (res *OrderCreateRes, err error) {
method := "orderCreate2Pms"
req.ChannelId = server.AppKey
req.UserNumber = server.UserNumber
result, err := post(ctx, method, g.Map{
"request": req,
})
_ = gjson.New(result).Scan(&res)
return
}
package wpc
import (
"context"
"github.com/gogf/gf/encoding/gjson"
"github.com/gogf/gf/frame/g"
)
type refundWpc struct {
}
var Refund = refundWpc{}
type RefundReasonReq struct {
ChannelId string `json:"vopChannelId"`
UserNumber string `json:"userNumber"`
OrderSn string `json:"orderSn"`
ReturnId string `json:"returnId,omitempty"`
AreaId string `json:"areaId,omitempty"`
}
type RefundReasonRes struct {
ReturnCode string `json:"returnCode"`
ReturnMessage string `json:"returnMessage"`
Result interface{} `json:"result"`
}
//Reason 退货原因
func (refundWpc) Reason(ctx context.Context, req RefundReasonReq) (res *RefundReasonRes, err error) {
method := "getReturnOrderCreate"
req.ChannelId = server.AppKey
req.UserNumber = server.UserNumber
result, err := post(ctx, method, g.Map{
"request": req,
})
_ = gjson.New(result).Scan(&res)
return
}
type RefundApplyReq struct {
ChannelId string `json:"vopChannelId"`
UserNumber string `json:"userNumber"`
OrderSn string `json:"orderSn"`
SizeInfo string `json:"sizeInfo"`
}
type RefundApplySizeInfo struct {
SizeID int `json:"sizeId"`
Num int `json:"num"`
ReasonID int `json:"reasonId"`
}
type RefundApplyRes struct {
ReturnCode string `json:"returnCode"`
ReturnMessage string `json:"returnMessage"`
Result interface{} `json:"result"`
}
//Apply 申请
func (refundWpc) Apply(ctx context.Context, req RefundApplyReq) (res *RefundApplyRes, err error) {
method := "orderReturnCreate"
req.ChannelId = server.AppKey
req.UserNumber = server.UserNumber
result, err := post(ctx, method, g.Map{
"request": req,
})
_ = gjson.New(result).Scan(&res)
return
}
type RefundSubmitReq struct {
ChannelId string `json:"vopChannelId"`
UserNumber string `json:"userNumber"`
OrderSn string `json:"orderSn"`
CarriersCode string `json:"carriersCode"`
TransportNo string `json:"transportNo"`
Remark string `json:"remark,omitempty"`
ReturnId string `json:"returnId,omitempty"`
}
type RefundSubmitRes struct {
ReturnCode string `json:"returnCode"`
ReturnMessage string `json:"returnMessage"`
Result interface{} `json:"result"`
}
//Submit 填写回寄物流单号
func (refundWpc) Submit(ctx context.Context, req RefundSubmitReq) (res *RefundSubmitRes, err error) {
method := "updateReturnTransportNo"
req.ChannelId = server.AppKey
req.UserNumber = server.UserNumber
result, err := post(ctx, method, g.Map{
"request": req,
})
_ = gjson.New(result).Scan(&res)
return
}
type RefundListReq struct {
ChannelId string `json:"vopChannelId"`
UserNumber string `json:"userNumber"`
Page string `json:"page"`
PageSize string `json:"pageSize"`
OrderSn string `json:"orderSn"`
IsCanceled bool `json:"isCanceled,omitempty"`
}
type RefundListRes struct {
ReturnCode string `json:"returnCode"`
ReturnMessage string `json:"returnMessage"`
Result interface{} `json:"result"`
}
//List 列表
func (refundWpc) List(ctx context.Context, req RefundListReq) (res *RefundListRes, err error) {
method := "multiAfterSaleList"
req.ChannelId = server.AppKey
req.UserNumber = server.UserNumber
result, err := post(ctx, method, g.Map{
"request": req,
})
_ = gjson.New(result).Scan(&res)
return
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论