京东商品
This commit is contained in:
@@ -51,7 +51,7 @@ func TestOrderListAll(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestOrderPartRefundGet(t *testing.T) {
|
func TestOrderPartRefundGet(t *testing.T) {
|
||||||
result, err := api.OrderPartRefundGet("1557459492221457830")
|
result, err := api.OrderPartRefundGet("2127926002950657162")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ type CreateSkuParamSkus struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type CreateSkuParamAttrs struct {
|
type CreateSkuParamAttrs struct {
|
||||||
// AttrValueAlias []string `json:"attrValueAlias"` //否 无 值别名,发布商品时不可设置
|
// AttrValueAlias []string `json:"attrValueAlias,omitempty"` //否 无 值别名,发布商品时不可设置
|
||||||
AttrID string `json:"attrId"` //是 无 下沉到sku的属性ID 通过接口 jingdong.category.read.findAttrsByCategoryIdUnlimitCate 获取 features字段中attrLevel=1
|
AttrID string `json:"attrId"` //是 无 下沉到sku的属性ID 通过接口 jingdong.category.read.findAttrsByCategoryIdUnlimitCate 获取 features字段中attrLevel=1
|
||||||
AttrValues []string `json:"attrValues"` //是 无 下沉到sku属性值 单选或者多选 通过接口jingdong.category.read.findValuesByAttrIdUnlimit获取 输入类型请手动输入
|
AttrValues []string `json:"attrValues"` //是 无 下沉到sku属性值 单选或者多选 通过接口jingdong.category.read.findValuesByAttrIdUnlimit获取 输入类型请手动输入
|
||||||
}
|
}
|
||||||
@@ -573,3 +573,46 @@ func (a *API) TransparentImageAdd(wareId int64, imageUrl string) (err error) {
|
|||||||
})
|
})
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type UpdateWareSaleAttrvalueAliasParam struct {
|
||||||
|
WareID int64 `json:"wareId"`
|
||||||
|
Props []*CreateSkuParamAttrs2 `json:"props"` //否 无 多级SKU属性,仅当属性可以下沉时才能设置,不验证必填!sku维度设置后,以sku上的属性为准!
|
||||||
|
}
|
||||||
|
|
||||||
|
type CreateSkuParamAttrs2 struct {
|
||||||
|
AttrValueAlias []string `json:"attrValueAlias,omitempty"` //否 无 值别名,发布商品时不可设置
|
||||||
|
AttrID string `json:"attrId"` //是 无 下沉到sku的属性ID 通过接口 jingdong.category.read.findAttrsByCategoryIdUnlimitCate 获取 features字段中attrLevel=1
|
||||||
|
AttrValues []string `json:"attrValues"` //是 无 下沉到sku属性值 单选或者多选 通过接口jingdong.category.read.findValuesByAttrIdUnlimit获取 输入类型请手动输入
|
||||||
|
Type string `json:"type"` //"com.jd.pop.ware.ic.api.domain.Prop"
|
||||||
|
Type2 string `json:"@type"`
|
||||||
|
}
|
||||||
|
|
||||||
|
//修改商品销售属性
|
||||||
|
//https://open.jd.com/home/home#/doc/api?apiCateId=48&apiId=1381&apiName=jingdong.ware.write.updateWareSaleAttrvalueAlias
|
||||||
|
func (a *API) UpdateWareSaleAttrvalueAlias(param *UpdateWareSaleAttrvalueAliasParam) (err error) {
|
||||||
|
data, _ := json.Marshal(param)
|
||||||
|
_, err = a.AccessAPI2("jingdong.ware.write.updateWareSaleAttrvalueAlias", prodURL, map[string]interface{}{
|
||||||
|
"360buy_param_json": string(data),
|
||||||
|
})
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
type SearchSkuListResult struct {
|
||||||
|
Status int `json:"status"`
|
||||||
|
JdPrice float64 `json:"jdPrice"`
|
||||||
|
SkuID int64 `json:"skuId"`
|
||||||
|
WareID int64 `json:"wareId"`
|
||||||
|
OuterID string `json:"outerId"`
|
||||||
|
}
|
||||||
|
|
||||||
|
//搜索sku
|
||||||
|
//https://open.jd.com/home/home#/doc/api?apiCateId=48&apiId=1227&apiName=jingdong.sku.read.searchSkuList
|
||||||
|
func (a *API) SearchSkuList(wareId int64) (list []*SearchSkuListResult, err error) {
|
||||||
|
result, err := a.AccessAPI2("jingdong.sku.read.searchSkuList", prodURL, map[string]interface{}{
|
||||||
|
"wareId": wareId,
|
||||||
|
})
|
||||||
|
if err == nil {
|
||||||
|
utils.Map2StructByJson(result["jingdong_sku_read_searchSkuList_responce"].(map[string]interface{})["page"].(map[string]interface{})["data"], &list, false)
|
||||||
|
}
|
||||||
|
return list, err
|
||||||
|
}
|
||||||
|
|||||||
@@ -231,7 +231,7 @@ func TestFindVendorCategories(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFindAttrs(t *testing.T) {
|
func TestFindAttrs(t *testing.T) {
|
||||||
result, err := api.FindAttrs(13582)
|
result, err := api.FindAttrs(15245)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@@ -239,7 +239,7 @@ func TestFindAttrs(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFindValuesByAttrId(t *testing.T) {
|
func TestFindValuesByAttrId(t *testing.T) {
|
||||||
result, no, err := api.FindValuesByAttrId(150390)
|
result, no, err := api.FindValuesByAttrId(1001038262)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@@ -368,7 +368,7 @@ func TestDeleteSku(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFindSkuById(t *testing.T) {
|
func TestFindSkuById(t *testing.T) {
|
||||||
result, err := api.FindSkuById(69576828876)
|
result, err := api.FindSkuById(69948250090)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@@ -427,3 +427,162 @@ func TestTransparentImageAdd(t *testing.T) {
|
|||||||
// suffix := str[12:len(str)]
|
// suffix := str[12:len(str)]
|
||||||
fmt.Println(str[:12])
|
fmt.Println(str[:12])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestUpdateWareSaleAttrvalueAlias(t *testing.T) {
|
||||||
|
err := api.UpdateWareSaleAttrvalueAlias(&UpdateWareSaleAttrvalueAliasParam{
|
||||||
|
WareID: 14566414324,
|
||||||
|
Props: []*CreateSkuParamAttrs2{
|
||||||
|
&CreateSkuParamAttrs2{
|
||||||
|
AttrID: "1001038262",
|
||||||
|
AttrValues: []string{"2453826609"},
|
||||||
|
AttrValueAlias: []string{"500g 下午易缺货"},
|
||||||
|
Type: "com.jd.pop.ware.ic.api.domain.prop",
|
||||||
|
Type2: "com.jd.pop.ware.ic.api.domain.Prop",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
// t.Log(utils.Format4Output(result, false))
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSearchSkuList(t *testing.T) {
|
||||||
|
var wareIDs = []int64{
|
||||||
|
14518860227,
|
||||||
|
14518865342,
|
||||||
|
14518857791,
|
||||||
|
14518863440,
|
||||||
|
14518850181,
|
||||||
|
14518869426,
|
||||||
|
14518865836,
|
||||||
|
14518860282,
|
||||||
|
14518862865,
|
||||||
|
14518860089,
|
||||||
|
14518861773,
|
||||||
|
14518857091,
|
||||||
|
14518859794,
|
||||||
|
14518878413,
|
||||||
|
14518874243,
|
||||||
|
14518992990,
|
||||||
|
14519010404,
|
||||||
|
14519010010,
|
||||||
|
14519006838,
|
||||||
|
14519009822,
|
||||||
|
14541114008,
|
||||||
|
14542371664,
|
||||||
|
14542409106,
|
||||||
|
14542477967,
|
||||||
|
14542585438,
|
||||||
|
14542602011,
|
||||||
|
14542586377,
|
||||||
|
14542927723,
|
||||||
|
14542946611,
|
||||||
|
14542948535,
|
||||||
|
14543031285,
|
||||||
|
14543077206,
|
||||||
|
14544951705,
|
||||||
|
14546014638,
|
||||||
|
14565258994,
|
||||||
|
14565275855,
|
||||||
|
14566133342,
|
||||||
|
14566144059,
|
||||||
|
14566419305,
|
||||||
|
14566403990,
|
||||||
|
14566408956,
|
||||||
|
14567187277,
|
||||||
|
14567793468,
|
||||||
|
14567911336,
|
||||||
|
14567910034,
|
||||||
|
14567907049,
|
||||||
|
14567904981,
|
||||||
|
14567909664,
|
||||||
|
14567907786,
|
||||||
|
14568001774,
|
||||||
|
14568152611,
|
||||||
|
14568138877,
|
||||||
|
14568146252,
|
||||||
|
14568161923,
|
||||||
|
14568508881,
|
||||||
|
14568512475,
|
||||||
|
14568524772,
|
||||||
|
14568533264,
|
||||||
|
14568540322,
|
||||||
|
14568534834,
|
||||||
|
14568546936,
|
||||||
|
14568542882,
|
||||||
|
14568806841,
|
||||||
|
14576405495,
|
||||||
|
14576832607,
|
||||||
|
14576832017,
|
||||||
|
14576946037,
|
||||||
|
14576974106,
|
||||||
|
14576993226,
|
||||||
|
14579143223,
|
||||||
|
14581769973,
|
||||||
|
14581773059,
|
||||||
|
14581773646,
|
||||||
|
14581780520,
|
||||||
|
14581782920,
|
||||||
|
14581768094,
|
||||||
|
14581788365,
|
||||||
|
14581805504,
|
||||||
|
14581919920,
|
||||||
|
14581915051,
|
||||||
|
14581920950,
|
||||||
|
14581971709,
|
||||||
|
14581979302,
|
||||||
|
14581974927,
|
||||||
|
14581974739,
|
||||||
|
14581964099,
|
||||||
|
14581974639,
|
||||||
|
14581976637,
|
||||||
|
14581979946,
|
||||||
|
14581989815,
|
||||||
|
14581987337,
|
||||||
|
14581987251,
|
||||||
|
14581981273,
|
||||||
|
14581996123,
|
||||||
|
14581984285,
|
||||||
|
14581994544,
|
||||||
|
14581996576,
|
||||||
|
14582006319,
|
||||||
|
14582000952,
|
||||||
|
14582000668,
|
||||||
|
14581993998,
|
||||||
|
14581996999,
|
||||||
|
14582016736,
|
||||||
|
14582053303,
|
||||||
|
14594027838,
|
||||||
|
14594055255,
|
||||||
|
14594104816,
|
||||||
|
14594233747,
|
||||||
|
14594245738,
|
||||||
|
14594249079,
|
||||||
|
14594296303,
|
||||||
|
14594987858,
|
||||||
|
14596828148,
|
||||||
|
14600091528,
|
||||||
|
14600094614,
|
||||||
|
14600087648,
|
||||||
|
14566414324}
|
||||||
|
for _, v := range wareIDs {
|
||||||
|
result, _ := api.SearchSkuList(v)
|
||||||
|
for _, vv := range result {
|
||||||
|
api.DeleteSku(vv.SkuID)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// result, err := api.SearchSkuList(14518857091)
|
||||||
|
// if err != nil {
|
||||||
|
// t.Fatal(err)
|
||||||
|
// }
|
||||||
|
// t.Log(utils.Format4Output(result, false))
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestAAAAAA(t *testing.T) {
|
||||||
|
result, err := api.SearchSkuList(14518860227)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
t.Log(utils.Format4Output(result, false))
|
||||||
|
}
|
||||||
|
|||||||
@@ -467,3 +467,74 @@ func (a *API) UpdateWaybill(orderId, logiId, logiNo string) (err error) {
|
|||||||
})
|
})
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//登录
|
||||||
|
// Accept: */*
|
||||||
|
// Accept-Encoding: gzip, deflate, br
|
||||||
|
// Accept-Language: zh-CN,zh;q=0.9
|
||||||
|
// Connection: keep-alive
|
||||||
|
// Content-Length: 2129
|
||||||
|
// Content-Type: application/x-www-form-urlencoded; charset=UTF-8
|
||||||
|
// Cookie: __jdu=15913386790311275342874
|
||||||
|
// Host: passport.jd.com
|
||||||
|
// Origin: https://passport.jd.com
|
||||||
|
// Referer: https://passport.jd.com/common/loginPage?from=pop_vender®Tag=2&ReturnUrl=https%3A%2F%2Fseller.shop.jd.com%2Fseller%2Fsellerinfo%2Fseller_info.action
|
||||||
|
// User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3761.400 QQBrowser/10.6.4121.400
|
||||||
|
// X-k39sGHmW-a: w9fV4=jzG=ce4jhYrOwXaIhG4oeGSZzNBFUXMdcfztckhgq_4MHU49dkqt-U_IweW=f-hl5g7PhWWUfeT4iw7a5YxNBIMIzY89pf_Zve_6wU7tK3btorTN8PW=vySXE1WvKtB=pOxyJ5PDwWT2w_BN0PJqvqaufP9PJerFcHrtj8UImbajPUeDwEv0aEW=ixJDw_nYW1MIJqffqfT9K_mlq5i9csTufgztir-OXI-=2GwrqOqshrWm2GdV25A=d9WWV_Jl3FSqieSWqffOSP1tYGa_I1Otq-bCfrqlcWnfikSEq5_uB9TmN_hX8=aaJHSZ8_WyZcSXwUoY6WJfcya7d0PFcYDI4N4yWVh7qOJv8Zc7WkJnwGBPqUSY5QJfakSPSwhtuXnOv=a=hh8yE5zEzGptNkSV-sZXhrO9BB0Y1qSK4dWrLVBgakiZhfWuKefoiszdlwJZWKa94ehgvW4=s_aaiG4=-phkh54Gaf4gB_OOa-alhYayGVA=cUiaW-i38tc55FagvZ1FcE4yqUNtZZSEd9Wu1_aofqWZdeBUldimcy4=OtZNJUMtaV4Ei_MKHZnmECBpKpaOJcSu2YitoGJup5jol1ivaW_0aki9YN4XNcSPEWS9=dmoHrTmLa3ZwPhNzG_l5yAIwYSPKGD0sW4gieO_5GW9a_itvVhpq3SOsrzWKQ4sieSF-5BmWex=cWBNn=-gUGWVNdK=pnSEIjMghEByKe79YWS=zW_ZqFSEJeJMfNidwIhls_uOq_79z1StjBz0hU09sNMw7WP74kS92sZmcGTpw=3tUOTgw9cuO17W8GMtDX4dg14=9Q49tFTuUUnu1__=5ra91P4tHpZG8FWWBEGFWPTMfWJuf_h4KWM7dNWmWGzEiEJ3Q1T7sq7D7qSE8eiEzObuOWBGyVWtdkxyIVi=f_ht2Oo1dgW4qGtWhUidqXSPKp4WWP4=vrJOqXa0Wp2=c_7fVNBNdY1EZz==jVmoKgMt6WnESsaSc1TJhEJ9k3Zyh63Iw0T=fkMtwsrZzqhtJh7V2UNWh9SfUbJZvU3EKOTge5S=8UzKiU4yEtSPqpT9OyJ3fk3MIwJtvGalhsngq7B=f9BY04arq_4yWgffGDiywG4G5coPKYeDwPSus_4Dzp_IEP4sW_aId-JZisWZhroPI14Y2_Wl3s7EiGSNK5WEaNag7gztvG-PqxJf-zavmNZaws1IweWImnh6E1MIa_qZ7Gr7frm_I=JuuszIiaqdq5492eqDIPStdG7I7kMDjPJtfpa9jcnZfWh9cyaIZ0auuH4=hpMI4NGyJF_DwcnOweJud6WEhp-U7pJg8GiasWS=dPB=1VMtPjJnW=o=KWZu1kB6JVTZakWtj3n92GSzJ5S_8tTO4P-Oikni8GTPyEa=ckzplPaIW9it1TvIqU4GaczIquMtfJ
|
||||||
|
// X-k39sGHmW-b: a348oo
|
||||||
|
// X-k39sGHmW-c: A_MO-4hlAQAA29XveTX0-KoQbPiy3xbjIijWum-rT-EHQtuHV6skyxlsJAsDAawUIfCucinBwH8AAOfvAAAAAA==
|
||||||
|
// X-k39sGHmW-d: 0
|
||||||
|
// X-k39sGHmW-uniqueStateKey: A7ae-4hlAQAAngSz4VMCAl-Vlq71Ta_smPn9uLwC7A7bioCLfwLMadcFYPb2AawUIfGLr4YoFOgAAAAAAAAAAA==
|
||||||
|
// X-Requested-With: XMLHttpRequest
|
||||||
|
func (a *API) TryGetCookie() (cookie string, err error) {
|
||||||
|
params := map[string]interface{}{
|
||||||
|
"uuid": "15fc964c-aa54-4c2d-b718-cd3da5af9d69",
|
||||||
|
"eid": "GS2E2DOSGES5EJGLTQLTXN2FXRWYH2BLDSJ2JGEHLXBBE563VC2OAJEFTO5ZUHRDTRMWOADDAEKFTDAGZHXTULGZBM",
|
||||||
|
"fp": "b5c13ce2badacb92763e140cf2385bfc",
|
||||||
|
"_t": "_t",
|
||||||
|
"loginname": "jxcs_syl",
|
||||||
|
"nloginpwd": "RUUE/EHuNMv88DMcVoMxYix5wjvOSL2rhz1xckkkzgL/Nr4aVKcPvfYDvp9sW1AD32oJ4PM/shLiUAof0KKO3olq5+KwavGQW4UTI2SV+RjSmU830j4v0nSdMKfbszikj4z4R9A7W9HK853tlI0r5cSBuQK5KhsDJf7hWVFgV1c=",
|
||||||
|
"authcode": "3ad7a8a58e8f4122aaa522ec3e034bd3",
|
||||||
|
"pubKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDC7kw8r6tq43pwApYvkJ5laljaN9BZb21TAIfT/vexbobzH7Q8SUdP5uDPXEBKzOjx2L28y7Xs1d9v3tdPfKI2LR7PAzWBmDMn8riHrDDNpUpJnlAGUqJG9ooPn8j7YNpcxCa1iybOlc2kEhmJn5uwoanQq+CA6agNkqly2H4j6wIDAQAB",
|
||||||
|
"sa_token": "B68C442BE645754F33277E701208059080DD726A94A73F76DEC3053A838549C06EB7D3797CE1C5BBE7C2B2EF9CA7D4676F3D489984B517943EA13575FA80C7E7ACE37FCFF6F535F07B6FF67F57EA6A0581BD84EA37554047DF10ECB7C873652D89DB5CAEE8F1090FB49A29547319CF16FBF33734EFA4BF8F86849797883219C3E197A604140E904BA7E538273F59893FDF9BFD6EBA3121C9E3CD43FCF0A83781B9A15920719D6C522B442FEB4A3A8C9CC7224AA55DC3877FC1BF5C845DEA80CCFB4D0CF33C8D9563ADF38943F28CEC9013C3BA8916B81844BBA454ACF21EDC3B7364C10CF219ABE7ADFFF42E2063BC2C957642453DA5E5B1E3277AE284D508B740A66BC4913EF086ACA2540C5ABB3E36C7BF693C668DFC806D4A7EFDD347D3C6869E4B529881FE46C9414D0E8E0B2B3BA3689CFCBE5CB26921DA46FABA0098E823B687A7F94DB84900C616284D5F6E49E605BFA8FD4473FD03FACD353DFA026C205B536A0DF325AC713A5B6916A60483BD386F29FF3F28046C4B19E6EE6B18F7C299C4F873C04993A085D6D6DE63C9DFECA20332F02D31EB2BA069EB9FDD3F6C14BEB40ABF57093396EEE3C2C2D727FF8C324016E2BE7BB61F4D7E2669B081E45E24801B6760CEBFE54A188FAD77B99B63D054B55FE09C6FD0A1F7B6EF448E9BBDC4D7554386AB5A2FA0787DB95D788470D913E453AF7E98F05D14B20C342F0A3CD62B833E7AC8B75C5C23ED0FC4FC4C2F23A1FAA047DEB10A856DA39B40BC9E8FC48DF17B98B28FC6C8ED1ABB248D4863083CB04E9DAD58FED19195DC02C2378C10426377996BDA4C1D060D2132BE99C37970727983EFD266A62B498B0116124E6403B18110B868B132C747F08B6DE52FD8BDD1A757E3DC74EC36D62BDF125703CB83DAA362EB086FF567C0549C6BFD26E53EC964405375B6F0CE100B44692D671D7017E45B19B42015F96D2D173B8BDA912FC3C4C8A21528EE0C28E6D4CBB8",
|
||||||
|
"seqSid": "331828644098046192",
|
||||||
|
"useSlideAuthCode": "1",
|
||||||
|
}
|
||||||
|
err = platformapi.AccessPlatformAPIWithRetry(a.client,
|
||||||
|
func() *http.Request {
|
||||||
|
request, _ := http.NewRequest(http.MethodPost, "https://passport.jd.com/common/loginService?nr=1&uuid=094087da-1373-40bf-bba2-63bb64026cfd&from=pop_vender®Tag=2&ReturnUrl=https://seller.shop.jd.com/seller/sellerinfo/seller_info.action&r=0.21554654723242117", strings.NewReader(utils.Map2URLValues(params).Encode()))
|
||||||
|
request.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
|
||||||
|
request.Header.Set("Host", "passport.jd.com")
|
||||||
|
request.Header.Set("Origin", "https://passport.jd.com")
|
||||||
|
request.Header.Set("Referer", "https://passport.jd.com/common/loginPage?from=pop_vender®Tag=2&ReturnUrl=https://seller.shop.jd.com/seller/sellerinfo/seller_info.action")
|
||||||
|
request.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3761.400 QQBrowser/10.6.4121.400")
|
||||||
|
request.Header.Set("X-k39sGHmW-a", "ZtUfrFE109K33EiraIwE4CweB9pexmWIS9jITuItWOvk_upGBNBF7=K6nPW_O0NGwPW_at8qz0hEAaJJ405haPKUBGqUhWqrJtUeSNt7MdcGStLGWtf_hWECJasNSj5h4ke5Nh7ViE8=JnwUSsEf3tOPSKmawFcPzt_pePK6nOw5xUhOi_qIZ=M8Z=oN49KcJ0aG4tvEn-lc1O5UW9KQaZSchZakBr19ipKraXhkidpGJEKyo9UYBj5yaOdNJnTNJuMFotKPhG5OWV2Gaaifh5s1z_hG4=vZJZf_aEqcttie4tjVBXO8_=0yag7eSNwGnuYWh=vxzIzraEws4I8Y4phP4tq5Ju1_Mtc_aj1PSPWfrNEWT=usJu-y57Eaa=wgT=SPh6se4=bs_uvHSgq_4VWkSPyzhOWEJgzNSFcrryKZiFcUoAzKTYEPT96pTmPtJIUXaPhE8oasv901qgwZvI7WS=UpiuLWogw3ht_9So1g4FYkWWdq7ulJadKpSrUa3lyPrgzrJt857yqUqWNka=9QWv0Ix=KPfrWdnJ8GWt17xdUYS=w5TO7_UtzYsvf_W=hO4gqWaZW97PadSUiG1WvIJwW-JOmfJuJONtckTuMb4=YkJuYYnuKrqyS1hlFySoTqitFsWXqB49Uyn7KgWPJEiawt_yoWa9fxsZKGaEaqWIJsJVUGxVq5Wu2e4UhrMt55aFcXd=i2q646rV2kr4spMV5UJ4wPnfdq8G5EJ7Keza8UhofgWu23iVsNvjakidwzfuKFc=NZztfdttifvVE5fmWGMwK0vEdg7up6iudV_8HXTlweSj091t_kvWE14p7kBx8waWVN8Y5Fh=fkvK7N7thUnZwp3XWGerVsKjUUDWW9T_BPS9-kDDhceuhqTGagJ7t0W=c5ogO5SOSCTXZhBscUJZhymgq5hgz9dXO1nlh5BXfLJfaWWja-T9K8iGhkhusPSdWGT90wSgiXnrLzMt-Fjg8h5Fjr-g8g_sqQJh-=_Xqr4t2GTmEWf0y3SrLPupl17uIPi3e32=KqS9d-B9Yg4ywHaEWVvgef8Nhk7j21S_8rru2_3us-SN7q4XfGqW7_SZwGWVWWaPhPJZ4-J3JEor-YSNq_WO06aOfNWm1pJZqU-=8Hr9vQiF1ziPWkaZwaarcGuUw7VmJAS=O14yaWvX8GaG5Xogz1iE0WT9fk4ybFaZ8BruMFhqJk1Ii6x=KGJmWX6ai6T=OKJ7KHmP7rMIhEjg5UvI7m4=-e_iwBMKokSIwHo2a-nufWxsKr_fqGWVqUJa_G4sqeBjaKOYqri4NgoPh8r_KcvoUfiU85qZlcT6SoaupZ7d2cx=jK-rciat1_4PJGWly1blhWhuvUSyKeZXVHE_WGoP8UWZh9WawYnA7WfPfuUE01ar1vSVceWsIqAjW-JZEP4t5etEa_JlUP3p8r3fJWatvPJl3F")
|
||||||
|
request.Header.Set("X-k39sGHmW-b", "-9kt3q0")
|
||||||
|
request.Header.Set("X-k39sGHmW-c", "A_MO-4hlAQAA29XveTX0-KoQbPiy3xbjIijWum-rT-EHQtuHV6skyxlsJAsDAawUIfCucinBwH8AAOfvAAAAAA==")
|
||||||
|
request.Header.Set("X-k39sGHmW-d", "0")
|
||||||
|
request.Header.Set("X-k39sGHmW-uniqueStateKey", "A7ae-4hlAQAAngSz4VMCAl-Vlq71Ta_smPn9uLwC7A7bioCLfwLMadcFYPb2AawUIfGLr4YoFOgAAAAAAAAAAA==")
|
||||||
|
request.Header.Set("X-Requested-With", "XMLHttpRequest")
|
||||||
|
c := &http.Cookie{
|
||||||
|
Name: "alc",
|
||||||
|
Value: "RinKQBiRr1QceieVnkF+Uw==",
|
||||||
|
}
|
||||||
|
c2 := &http.Cookie{
|
||||||
|
Name: "_t",
|
||||||
|
Value: "DplFmazbesu5rn1NUKhLBe8yV7ia5OQcE7GXyFv3QCw=",
|
||||||
|
}
|
||||||
|
request.AddCookie(c)
|
||||||
|
request.AddCookie(c2)
|
||||||
|
return request
|
||||||
|
},
|
||||||
|
a.config,
|
||||||
|
func(response *http.Response, bodyStr string, jsonResult1 map[string]interface{}) (errLevel string, err error) {
|
||||||
|
fmt.Println(utils.Format4Output(response.Cookies(), false))
|
||||||
|
return errLevel, err
|
||||||
|
})
|
||||||
|
return cookie, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *API) JdSSO() (err error) {
|
||||||
|
_, err = a.AccessStorePage("https://sso.jd.com/setCookie?t=https://seller.shop.jd.com/seller/sellerinfo/seller_info.action&callback=https://seller.shop.jd.com/seller/sellerinfo/seller_info.action", nil, false)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package jdshopapi
|
package jdshopapi
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"crypto/aes"
|
||||||
|
"encoding/base64"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
@@ -91,7 +93,45 @@ func TestUpdateWaybill(t *testing.T) {
|
|||||||
// t.Log(utils.Format4Output(result, false))
|
// t.Log(utils.Format4Output(result, false))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAAAAAA(t *testing.T) {
|
func TestTryGetCookie(t *testing.T) {
|
||||||
str := "2020-06-02 16:00-17:00"
|
result, err := api.TryGetCookie()
|
||||||
fmt.Println(str[:strings.LastIndex(str, "-")])
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
t.Log(utils.Format4Output(result, false))
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestAAADS(t *testing.T) {
|
||||||
|
var s float64 = 200
|
||||||
|
fmt.Println(strings.TrimRight(fmt.Sprintf("%.2f", s), "0."))
|
||||||
|
}
|
||||||
|
|
||||||
|
func DecryptDESECB(d, key []byte) string {
|
||||||
|
data, err := base64.StdEncoding.DecodeString(string(d))
|
||||||
|
if err != nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
block, err := aes.NewCipher(key)
|
||||||
|
if err != nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
bs := block.BlockSize()
|
||||||
|
if len(data)%bs != 0 {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
out := make([]byte, len(data))
|
||||||
|
dst := out
|
||||||
|
for len(data) > 0 {
|
||||||
|
block.Decrypt(dst, data[:bs])
|
||||||
|
data = data[bs:]
|
||||||
|
dst = dst[bs:]
|
||||||
|
}
|
||||||
|
out = PKCS5UnPadding(out)
|
||||||
|
return string(out)
|
||||||
|
}
|
||||||
|
|
||||||
|
func PKCS5UnPadding(origData []byte) []byte {
|
||||||
|
length := len(origData)
|
||||||
|
unpadding := int(origData[length-1])
|
||||||
|
return origData[:(length - unpadding)]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user