京东商城店内分类修改

This commit is contained in:
苏尹岚
2020-05-27 17:04:34 +08:00
parent 153b64ef9e
commit cbf0d89455
8 changed files with 78 additions and 28 deletions

View File

@@ -85,7 +85,7 @@ func TestGetDistricts(t *testing.T) {
} }
func TestGetCoordinateFromAddress(t *testing.T) { func TestGetCoordinateFromAddress(t *testing.T) {
lng, lat, districtCode := autonaviAPI.GetCoordinateFromAddress("天府广场", "成都市") lng, lat, districtCode := autonaviAPI.GetCoordinateFromAddress("辽宁铁岭市铁岭县凡河新区3区3号楼4单元301", "")
t.Logf("lng:%f, lat:%f, districtCode:%d", lng, lat, districtCode) t.Logf("lng:%f, lat:%f, districtCode:%d", lng, lat, districtCode)
} }
@@ -151,7 +151,7 @@ func TestBatchWalkingDistance(t *testing.T) {
} }
func TestAA(t *testing.T) { func TestAA(t *testing.T) {
result, err := autonaviAPI.GetCoordinateAreaInfo(116.331471, 39.909837) result, err := autonaviAPI.GetCoordinateAreaInfo(123.715455, 42.221651)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }

View File

@@ -16,6 +16,6 @@ func init() {
baseapi.Init(sugarLogger) baseapi.Init(sugarLogger)
api = New("de8157b447584885910f429011e49cb93yjq", "E1D746D42474D5F1F1A10CECE75D99F6", "efa7e1d1a22640fa990e6cf164b28608") api = New("de8157b447584885910f429011e49cb93yjq", "E1D746D42474D5F1F1A10CECE75D99F6", "efa7e1d1a22640fa990e6cf164b28608")
api.SetCookieWithStr(` api.SetCookieWithStr(`
thor=80FAF09E9A09B6E618A68057BDFCFCB83C345398FC0EA96BB93E21F628E09F69ABC4812E3C973FC424A9790F0EFBB575F0B38D3D40ED8C7FE094307204922296A626E5E990526A84EEA9E1F52BE923D06899DA48B400EBFCDB1F7934C84EAE4AA0D9454C7173B79CE6780DC12463FF8101D2D81F1975356E1E062C3B7A5EA9CF6DB6EFEF59F75691F88E2E044ADA79EF; thor=80FAF09E9A09B6E618A68057BDFCFCB88A0E4CE7743FBEC84F10D992F9C6A4119DF98DA3CAAE9C7F17BEB62884625B4E7BC82422A90F45F02EA293572D951B055EF0B5F603AEA568DFD4234138F841EC1AC1F67B30B48AAC9EAD5FBAE7943E1DCC99E99D8358C82F7832B71A2BCB31624E16BBF561720443DE966BDA3588406233A90224D9089710B102AA98B979B9B3;
`) `)
} }

View File

@@ -1,17 +1,15 @@
package jdshopapi package jdshopapi
import "encoding/json"
//查询单个订单 //查询单个订单
//https://open.jd.com/home/home#/doc/api?apiCateId=55&apiId=2389&apiName=jingdong.pop.order.enGet //https://open.jd.com/home/home#/doc/api?apiCateId=55&apiId=2389&apiName=jingdong.pop.order.enGet
func (a *API) EnGet(orderID int64) (err error) { func (a *API) EnGet(orderID int64) (err error) {
dataMap := map[string]interface{}{ // dataMap := map[string]interface{}{
"order_id": orderID, // "order_id": orderID,
"optional_fields": "orderType,payType", // "optional_fields": "orderType,payType",
} // }
data, _ := json.Marshal(dataMap) // data, _ := json.Marshal(dataMap)
_, err = a.AccessAPI("jingdong.pop.order.enGet", prodURL, map[string]interface{}{ _, err = a.AccessAPI("jingdong.pop.order.shipment", prodURL, map[string]interface{}{
"360buy_param_json": string(data), "orderId": orderID,
}) })
return err return err
} }

View File

@@ -150,6 +150,7 @@ type UpdateWareParam struct {
MobileDesc string `json:"mobileDesc"` // 是 无 移动版的商品介绍 长度限制10W个字符 MobileDesc string `json:"mobileDesc"` // 是 无 移动版的商品介绍 长度限制10W个字符
Introduction string `json:"introduction"` // 是 无 PC版的商品介绍 长度限制10W个字符 Introduction string `json:"introduction"` // 是 无 PC版的商品介绍 长度限制10W个字符
Features []*CreateSkuParamFeatures `json:"features"` // 否 无 商品维度的特殊属性 目前两个特殊属性 IBS、FBP、FCS、SCF 4种商家类型【规格型号】 model和【销售单位】 unit 字段且为必填(如 个、盒、袋等)请勿填写公司名称。 Features []*CreateSkuParamFeatures `json:"features"` // 否 无 商品维度的特殊属性 目前两个特殊属性 IBS、FBP、FCS、SCF 4种商家类型【规格型号】 model和【销售单位】 unit 字段且为必填(如 个、盒、袋等)请勿填写公司名称。
// ExtendFeatures []*CreateSkuParamFeatures `json:"extendFeatures"` // 否 无 商品维度的特殊属性 目前两个特殊属性 IBS、FBP、FCS、SCF 4种商家类型【规格型号】 model和【销售单位】 unit 字段且为必填(如 个、盒、袋等)请勿填写公司名称。
} }
type QueryPictureReuslt struct { type QueryPictureReuslt struct {

View File

@@ -273,9 +273,14 @@ func TestUpOrDown(t *testing.T) {
func TestUpdateWare(t *testing.T) { func TestUpdateWare(t *testing.T) {
err := api.UpdateWare(&UpdateWareParam{ err := api.UpdateWare(&UpdateWareParam{
WareID: 14521014949, WareID: 14545996691,
Title: "大青菜1", Title: "进口凤梨",
VenderID: 10374877, Features: []*CreateSkuParamFeatures{
&CreateSkuParamFeatures{
Key: "fdms",
Value: "1",
},
},
}) })
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)

View File

@@ -4,6 +4,7 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"net/http" "net/http"
"regexp"
"strings" "strings"
"git.rosy.net.cn/baseapi" "git.rosy.net.cn/baseapi"
@@ -11,6 +12,11 @@ import (
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
) )
var (
regexpOrderDetailTable = regexp.MustCompile(`<table id="receiveData">([\s\S]*?)</table>`)
regexpOrderDetailTd = regexp.MustCompile(`<td colspan="2">(.*?)</td>`)
)
func (a *API) AccessStorePage(fullURL string, bizParams map[string]interface{}, isPost bool) (retVal map[string]interface{}, err error) { func (a *API) AccessStorePage(fullURL string, bizParams map[string]interface{}, isPost bool) (retVal map[string]interface{}, err error) {
if a.GetCookieCount() == 0 { if a.GetCookieCount() == 0 {
return nil, fmt.Errorf("需要设置Store Cookie才能使用此方法") return nil, fmt.Errorf("需要设置Store Cookie才能使用此方法")
@@ -65,6 +71,9 @@ func (a *API) AccessStorePage2(fullURL string, bizParams map[string]interface{})
if jsonResult1 == nil { if jsonResult1 == nil {
return platformapi.ErrLevelRecoverableErr, fmt.Errorf("mapData is nil") return platformapi.ErrLevelRecoverableErr, fmt.Errorf("mapData is nil")
} }
if strings.Contains(bodyStr, "登录") {
return platformapi.ErrLevelRecoverableErr, fmt.Errorf("cookie可能过期了")
}
if err == nil { if err == nil {
if jsonResult1["error_response"] != nil { if jsonResult1["error_response"] != nil {
errLevel = platformapi.ErrLevelGeneralFail errLevel = platformapi.ErrLevelGeneralFail
@@ -90,12 +99,15 @@ type CreateShopCategoryParam struct {
//京东商城创建或修改店内分类 //京东商城创建或修改店内分类
//https://seller.shop.jd.com/vendershop/vendershop_shopCategory.action# //https://seller.shop.jd.com/vendershop/vendershop_shopCategory.action#
func (a *API) CreateShopCategory(createShopCategoryParam []*CreateShopCategoryParam) (err error) { func (a *API) CreateShopCategory(createShopCategoryParam []*CreateShopCategoryParam) (status int64, err error) {
result, _ := json.MarshalIndent(createShopCategoryParam, "", "") data, _ := json.MarshalIndent(createShopCategoryParam, "", "")
_, err = a.AccessStorePage("https://seller.shop.jd.com/vendershop/vendershop_doShopCategory.action", map[string]interface{}{ result, err := a.AccessStorePage("https://seller.shop.jd.com/vendershop/vendershop_doShopCategory.action", map[string]interface{}{
"categoryJson": string(result), "categoryJson": string(data),
}, true) }, true)
return err if err == nil {
status = utils.Interface2Int64WithDefault(result["fakeData"], -1)
}
return status, err
} }
//京东商城设置门店营业状态 //京东商城设置门店营业状态
@@ -350,13 +362,37 @@ type AllOrdersResult struct {
//https://porder.shop.jd.com/order/orderlist/allOrders //https://porder.shop.jd.com/order/orderlist/allOrders
func (a *API) AllOrders(allOrdersParam *AllOrdersParam) (allOrdersResult *AllOrdersResult, err error) { func (a *API) AllOrders(allOrdersParam *AllOrdersParam) (allOrdersResult *AllOrdersResult, err error) {
result, err := a.AccessStorePage2("https://porder.shop.jd.com/order/orderlist", map[string]interface{}{ result, err := a.AccessStorePage2("https://porder.shop.jd.com/order/orderlist", map[string]interface{}{
"current": allOrdersParam.Current, "current": allOrdersParam.Current,
"pageSize": allOrdersParam.PageSize, "pageSize": allOrdersParam.PageSize,
"selectedTabName": "allOrders", "selectedTabName": "allOrders",
"sortName": "desc", "sortName": "desc",
"orderCreateDateRange": allOrdersParam.OrderCreateDateRange,
// "storeId": allOrdersParam.StoreID,
"orderStatusArray": allOrdersParam.OrderStatusArray,
}) })
if err == nil { if err == nil {
utils.Map2StructByJson(result, &allOrdersResult, false) utils.Map2StructByJson(result, &allOrdersResult, false)
} }
return allOrdersResult, err return allOrdersResult, err
} }
//订单详情
//https://neworder.shop.jd.com/order/orderDetail?orderId=122367441996
func (a *API) OrderDetail(orderId string) (consigneeName, consigneeAddress string, err error) {
result, err := a.AccessStorePage("https://neworder.shop.jd.com/order/orderDetail", map[string]interface{}{
"orderId": orderId,
}, false)
if err == nil {
body := result["fakeData"].(string)
consigneeTable := regexpOrderDetailTable.FindStringSubmatch(body)
fmt.Println("test1", consigneeTable)
if len(consigneeTable) > 0 {
consigneeTd := regexpOrderDetailTd.FindAllStringSubmatch(consigneeTable[1], -1)
if len(consigneeTd) > 0 {
consigneeName = consigneeTd[0][1]
consigneeAddress = consigneeTd[1][1]
}
}
}
return consigneeName, consigneeAddress, err
}

View File

@@ -21,7 +21,8 @@ func TestCreateShopCategory(t *testing.T) {
Type: "3", Type: "3",
}, },
} }
api.CreateShopCategory(CreateShopCategoryParams) result, _ := api.CreateShopCategory(CreateShopCategoryParams)
fmt.Println(result)
} }
func TestUpdateStoreStatus(t *testing.T) { func TestUpdateStoreStatus(t *testing.T) {
@@ -40,10 +41,10 @@ func TestNewInfoList(t *testing.T) {
} }
func Test11(t *testing.T) { func Test11(t *testing.T) {
request, _ := http.NewRequest(http.MethodGet, "https://stores.shop.jd.com/stores/updateStoreStatus?storeId=24332466&storeStatus=1", nil) request, _ := http.NewRequest(http.MethodGet, "https://stores.shop.jd.com/stores/updateStoreStatus?storeId=24339301&storeStatus=1", nil)
c := &http.Cookie{ c := &http.Cookie{
Name: "thor", Name: "thor",
Value: "80FAF09E9A09B6E618A68057BDFCFCB8C86E8252DC9F7D3B34572625904FBA0AB6BF053A5325612EC0407791BB05F5301356E71E8B282C40C06D0B5DF3439DEECB102A78FAFF7AC0FC4E2D1FA8DD8BBAE1A011E50B5C74F1870AD982D7BF453F470F31F2241B73AC4C25485025C2ABEBC8A538AF7257824D2FAEE300A1435175B0B451FB5C19B78D729FC83152CA3BAF", Value: "80FAF09E9A09B6E618A68057BDFCFCB88A0E4CE7743FBEC84F10D992F9C6A4119DF98DA3CAAE9C7F17BEB62884625B4E7BC82422A90F45F02EA293572D951B055EF0B5F603AEA568DFD4234138F841EC1AC1F67B30B48AAC9EAD5FBAE7943E1DCC99E99D8358C82F7832B71A2BCB31624E16BBF561720443DE966BDA3588406233A90224D9089710B102AA98B979B9B3",
} }
request.AddCookie(c) request.AddCookie(c)
client := &http.Client{} client := &http.Client{}
@@ -58,9 +59,18 @@ func TestAllOrders(t *testing.T) {
result, err := api.AllOrders(&AllOrdersParam{ result, err := api.AllOrders(&AllOrdersParam{
Current: 1, Current: 1,
PageSize: 10, PageSize: 10,
StoreID: "24339648",
}) })
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
t.Log(utils.Format4Output(result, false)) t.Log(utils.Format4Output(result, false))
} }
func TestOrderDetail(t *testing.T) {
result1, result2, err := api.OrderDetail("122367441996")
if err != nil {
t.Fatal(err)
}
fmt.Println("test1", result1, result2)
}

View File

@@ -63,7 +63,7 @@ func TestGetCounty(t *testing.T) {
} }
func TestFindSkuSiteStock(t *testing.T) { func TestFindSkuSiteStock(t *testing.T) {
result, err := api.FindSkuSiteStock(24340329, 69353633443) result, err := api.FindSkuSiteStock(24339305, 69353498265)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }