aa
This commit is contained in:
@@ -23,7 +23,7 @@ func init() {
|
||||
// sandbox
|
||||
// api = New("594ab45a-9a73-4a43-82b0-a64cbd55d883", "06692746f7224695ad4788ce340bc854", "d6b42a35a7414a5490d811654d745c84")
|
||||
// prod
|
||||
api = New("29afd5a8-f93f-4d4c-9fce-a7297340af59", "1dba76d40cac446ca500c0391a0b6c9d", "a88d031a1e7b462cb1579f12e97fe7f4")
|
||||
api = New("df045085-c203-465c-87e3-e79279ecf9ed", "425a594759004dcd9b3542e3d7b47ffa", "fb33ef5f67c9423da67e470204dd3af9")
|
||||
// 天天果园
|
||||
// api = New("c45e6510-00ba-4be2-977e-bcb9c9792cc7", "5d5577a2506f41b8b4ec520ba83490f5", "0b01b9eeb15b41dab1c3d05d95c17a26")
|
||||
|
||||
@@ -34,8 +34,8 @@ func init() {
|
||||
// api.SetJdCookie(cookieValue)
|
||||
// api.SetCookie("user", "VCQUVHVJI4ELNGFZOYMCDYDUSHEJMPXZRZXSNBRB4MVBNENP72REAAZR3R4SGDJ5ZI4FLYLLN5EGBBMTFCWHZVESIWBNLKZPLHWD6UIBTPXOF5IXM6AVA3V6TUNZD5UJS43AROJ2IRPZWEN5AGZYBUEGD3MSKKBKBSRP3DSEQXLITYNBLFZCHXCA7L4KGOSJRMM7R5IQP7QGLGRQB27AOE4YMLRJ3UPTZADPWJOYB3UZ7UZHLBVZRREEX647O3WQUU4BYXUOFZPIPRR77W3PQV543E")
|
||||
api.SetCookieWithStr(`
|
||||
lsp-store1.jddj.com=ZRQ5RVE32D7ZRDH2FJUG5E2D42VYH5X2TT7PEYWWKEXOKG36MFGO3IZPU2644VM3AF245ANGSYECBEH6E2NYG4RO5MMOFGWNJFIVY3Z7SIWRIHVZJQZYXVAXFD3ZALXJ7LF7IXV2EIDQKACPO2QSMLXCK4BDVECTARS7I5ZWPB6ELIAI7GMGZB2PZLDOSGLJW3RSIFQATZFJXORN62Q47W7WFNA643UOAKVGBBBS5VZ3BNPFDHBYX5DNYB3TVGLKZDFAKRRXECTQQRZFGSOTYYIE4FXN7FSC2NHYJWBRIIRMP6W44EDED2ZMUGIFYVUY5JBXDO6GUFM74; josl-privilege1.jddj.com=ZRQ5RVE32D7ZRDH2FJUG5E2D42VYH5X2TT7PEYWWKEXOKG36MFGO3IZPU2644VM3AF245ANGSYECBEH6E2NYG4RO5MMOFGWNJFIVY3Z7SIWRIHVZJQZYXVAXFD3ZALXJ7LF7IXV2EIDQKACPO2QSMLXCK4BDVECTARS7I5ZWPB6ELIAI7GML3B5KRWVANMUE6CJHQ26ZEPPPZTZMVVEU7XFAU6BZUEDYJPXO4OZS5VZ3BNPFDHBYX5DNYB3TVGLKAPQZF3RP5BL22FN742XTFXEYFEVXQ34S6GZHMC5NGAXZ7AZ4DU2LILQOALXSO3ZBU5Q2RZJH2BMPIU3CGHF22D5GNS3U7O2AN3PH5TI; store_deviceid=89a38e81dfbb776fa5f866f74ed437a3; o2o-stock1.jddj.com=ZRQ5RVE32D7ZRDH2FJUG5E2D42VYH5X2TT7PEYWWKEXOKG36MFGO3IZPU2644VM3AF245ANGSYECBEH6E2NYG4RO5MMOFGWNJFIVY3Z7SIWRIHVZJQZYXVAXFD3ZALXJ7LF7IXV2EIDQKACPO2QSMLXCK4BDVECTARS7I5ZWPB6ELIAI7GMIMHXH2NJVBANI3UEOER5UPD2A4XBKD6W7VQRYOKUOI7PJTIXBNSW5P2G2MT3U6I3527NQFMAFLHXB5OQS4MGVQTJRQMJMGHBEQ4XGJ3I3LLXBHRXRG55NZQUW72XT7LTQ; o2o-pms1.jddj.com=ZRQ5RVE32D7ZRDH2FJUG5E2D42VYH5X2TT7PEYWWKEXOKG36MFGO3IZPU2644VM3AF245ANGSYECBEH6E2NYG4RO5MMOFGWNJFIVY3Z7SIWRIHVZJQZYXVAXFD3ZALXJ7LF7IXV2EIDQKACPO2QSMLXCK4BDVECTARS7I5ZWPB6ELIAI7GMBWJVC6XWTFZEWX37V5RK7T6TGKWWM446A6EOGP3IMZQ2UJX4CHBW5P2G2MT3U6I3527NQFMAFLHXB5OQS4MGVQTJRQMJMGHBEQ4XGJ3I3LLXBHRXRG55NZQUW72XT7LTQ; jdO2OOpenPortalSessionId=9C6BAB948DCAB76BC8EA3AB81B85A3D6.s1; JSESSIONID=C030881DDFF55693563C7C78FF7D5749.s1
|
||||
|
||||
lsp-store1.jddj.com=LSQNGFCHHF25J36CP5K7IVZ7GQ3IGPWLA3UFJDLOGRJ7D5JSEQY63IZPU2644VM3AF245ANGSYECBX4YHWF7LQNI46AL3RNJUBNL46ZJP6APMSIB5S2IL44UFTUXD4ES7NJGTRND64MSP5YAUIRCUGXTR3DP2X4QGGUXUZMYYZDPZYNHFSZ2WADBZSSJK5NTIGIQPPKWULCZTFMODOZQIP3QS74RQ25D3XYAYGWXTHOKBSRIYFDGFS4MIBIGXPL4JOU24WJL4PVF3PPYDNTOLLXDABUFAZSE6C6CNOMI6L2TAK43JJIJQRQAQUQSU537ZFLVPGBYFDJYY; store_deviceid=f8dc2505cd85d22da78edb86122bead7; jdO2OOpenPortalSessionId=821701404AB5BD1C5951146C6B69B977.s1; token=dd4cc1f4859b40b4a46070632170d1ad; JSESSIONID=2249A53C59B3E9F5E9EF6335E3E95AFB.s1
|
||||
|
||||
`)
|
||||
}
|
||||
|
||||
|
||||
@@ -151,10 +151,108 @@ func TestAddShopCategory(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDelShopCategory(t *testing.T) {
|
||||
err := api.DelShopCategory(5259045)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
map1 := map[string][][]string{
|
||||
"363436": [][]string{
|
||||
[]string{
|
||||
"b922658a-8f07-4932-a616-6a4b5347cf0a", "b5e6b41babba4743ab9c0896b9c6003f", "6511abe10f28405081e4f5a351457c22",
|
||||
},
|
||||
[]string{
|
||||
"5492150",
|
||||
"5492148",
|
||||
"5492146",
|
||||
},
|
||||
},
|
||||
"363558": [][]string{
|
||||
[]string{
|
||||
"c91173f4-567b-4bc9-a1e3-a1608407ec9d", "349b0b2156de4fd1adec4f34a5ca7247", "bee0d13695e64d13bb93ac9d50b95f94",
|
||||
},
|
||||
[]string{
|
||||
"5490060",
|
||||
"5490053",
|
||||
"5490056",
|
||||
},
|
||||
},
|
||||
"363701": [][]string{
|
||||
[]string{
|
||||
"3e21445d-ac39-428e-866c-69dca7b95ddc", "2148e08b14444b73bb04ee8dae4217ac", "7f541ab195934c109b8eee7a56b6f58d",
|
||||
},
|
||||
[]string{
|
||||
"5498539",
|
||||
"5498535",
|
||||
"5498536",
|
||||
},
|
||||
},
|
||||
"363739": [][]string{
|
||||
[]string{
|
||||
"fdb687b1-8e0a-4072-b251-04ef6d7a1a92", "218c544106e84cb08cbeed186c0d5bac", "fdd384a632354f189abce33f5a32ea14",
|
||||
},
|
||||
[]string{
|
||||
"5498692",
|
||||
"5498688",
|
||||
"5498689",
|
||||
},
|
||||
},
|
||||
"363786": [][]string{
|
||||
[]string{
|
||||
"098c8550-cfe7-4820-91fa-1bbf63ed9b20", "a396d930904047738dc70b6d2eb54e2d", "262f4656f16a48ed94003a1f261cd7d3",
|
||||
},
|
||||
[]string{
|
||||
"5499968",
|
||||
"5499966",
|
||||
"5499964",
|
||||
},
|
||||
},
|
||||
"363788": [][]string{
|
||||
[]string{
|
||||
"9b78cbb9-b956-4820-9b2f-330daaed2828", "5ecd3d4b65b44c9f9f820af232110f20", "63b0d12d32734334bf8c95d43e396035",
|
||||
},
|
||||
[]string{
|
||||
"5500121",
|
||||
"5500123",
|
||||
"5500120",
|
||||
},
|
||||
},
|
||||
"363892": [][]string{
|
||||
[]string{
|
||||
"163a032f-72df-44c9-a405-b7675e68d2a6", "f40e9fc714e741359c8fc4f2a1ea9e59", "e486c09cfded4fe3a15ee1cff546155f",
|
||||
},
|
||||
[]string{
|
||||
"5502844",
|
||||
"5502840",
|
||||
"5502842",
|
||||
},
|
||||
},
|
||||
"363894": [][]string{
|
||||
[]string{
|
||||
"840b4a7c-5b9a-40fc-95e8-e53b56573565", "fbeeef71305c46f192979ca6a00d380c", "feeec4ccf24744d892c4e892f5978847",
|
||||
},
|
||||
[]string{
|
||||
"5503000",
|
||||
"5502996",
|
||||
"5502997",
|
||||
},
|
||||
},
|
||||
"363896": [][]string{
|
||||
[]string{
|
||||
"064ee734-e819-455b-b4c4-cc5ee21c6b2f", "ab938148ff0444eba773a7851029d082", "8f659292e639499ca41d39476fc9c2df",
|
||||
},
|
||||
[]string{
|
||||
"5503152",
|
||||
"5503150",
|
||||
"5503151",
|
||||
},
|
||||
},
|
||||
}
|
||||
for _, v := range map1 {
|
||||
apijd := New(v[0][0], v[0][1], v[0][2])
|
||||
for _, vv := range v[1] {
|
||||
apijd.DelShopCategory(utils.Str2Int64(vv))
|
||||
}
|
||||
}
|
||||
// err := api.DelShopCategory(5496926)
|
||||
// if err != nil {
|
||||
// t.Fatal(err)
|
||||
// }
|
||||
}
|
||||
|
||||
func TestGetSkuSaleAttrName(t *testing.T) {
|
||||
|
||||
@@ -328,6 +328,7 @@ var (
|
||||
regexpJDStoreSkuPage = regexp.MustCompile(`共1/(.*)页`)
|
||||
regexpJDTbody = regexp.MustCompile(`<tbody>([\s\S]*?)</tbody>`)
|
||||
regexpJDTr = regexp.MustCompile(`<tr>([\s\S]*?)</tr>`)
|
||||
regexpJDTr2 = regexp.MustCompile(`<tr([\s\S]*?)</tr>`)
|
||||
regexpJDTdInfo = regexp.MustCompile(`<td>([\s\S]*?)</td>`)
|
||||
regexpJDSkuID = regexp.MustCompile(`sku编码:(.*)`)
|
||||
regexpJDSkuID2 = regexp.MustCompile(`<p>SKU编码:(.*)</p>`)
|
||||
@@ -336,11 +337,13 @@ var (
|
||||
regexpJDStoreLevel = regexp.MustCompile(`门店分级 :(.*);`)
|
||||
regexpJDSkuDirectPrice = regexp.MustCompile(`<td style="max-width: 80px">([\s\S]*?)</td>`)
|
||||
regexpJDStoreID = regexp.MustCompile(`<input class="storeInfoId" type="hidden" value="(.*?)"/>`)
|
||||
regexpAppID = regexp.MustCompile(`onClick="backcode\((.*)\)"`)
|
||||
htmlResponeURLs = []string{
|
||||
"login-o2o.jddj.com/jpuser/",
|
||||
"sta-store.jddj.com/store/",
|
||||
"pms-store.jddj.com/ware",
|
||||
"sta-store.jddj.com",
|
||||
"openo2o.jddj.com",
|
||||
}
|
||||
)
|
||||
|
||||
@@ -382,6 +385,7 @@ func (a *API) AccessStorePage2(fullURL string, params map[string]interface{}, is
|
||||
request, _ = http.NewRequest(http.MethodPost, fullURL, strings.NewReader(utils.Map2URLValues(params).Encode()))
|
||||
if params[KeyImgName] == nil {
|
||||
request.Header.Set("Content-Type", "application/x-www-form-urlencoded")
|
||||
request.Header.Set("accept", "application/json, text/javascript, */*; q=0.01")
|
||||
} else {
|
||||
var b bytes.Buffer
|
||||
w := multipart.NewWriter(&b)
|
||||
@@ -1184,3 +1188,63 @@ func (a *API) ToOnline() (err error) {
|
||||
_, err = a.AccessStorePage2("https://openo2o.jddj.com/sandBox/toOnline.htm", nil, true, "")
|
||||
return err
|
||||
}
|
||||
|
||||
//京东开放平台未授权回填验证码app的id
|
||||
func (a *API) GetJdNoAuthAppID(vendorOrgCode string) (data string, err error) {
|
||||
nameMap := make(map[string]string)
|
||||
result, err := a.AccessStorePage2("https://openo2o.jddj.com/xmanager/listAppBaseAndAuthNoAuth.htm", nil, false, "")
|
||||
if result != nil {
|
||||
tbody := regexpJDTbody.FindStringSubmatch(result.(string))
|
||||
trs := regexpJDTr2.FindAllStringSubmatch(tbody[1], -1)
|
||||
for _, v := range trs {
|
||||
tds := regexpJDTdInfo.FindAllStringSubmatch(v[1], -1)
|
||||
if len(tds) > 0 {
|
||||
if tds[3][1] != "" {
|
||||
if len(regexpAppID.FindStringSubmatch(tds[5][1])) > 0 {
|
||||
name := strings.Map(func(r rune) rune {
|
||||
switch r {
|
||||
case 0x000A, 0x000B, 0x000C, 0x000D, 0x0085, 0x2028, 0x2029:
|
||||
return -1
|
||||
default:
|
||||
return r
|
||||
}
|
||||
}, tds[3][1])
|
||||
nameMap[strings.ReplaceAll(name, "\t", "")] = regexpAppID.FindStringSubmatch(tds[5][1])[1]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if nameMap[vendorOrgCode] != "" {
|
||||
return nameMap[vendorOrgCode], err
|
||||
}
|
||||
return "", err
|
||||
}
|
||||
|
||||
type GetJdAppInfoResult struct {
|
||||
CallBackURL string `json:"callBackUrl"`
|
||||
OrgCode string `json:"orgCode"`
|
||||
AppKey string `json:"appKey"`
|
||||
AppSecret string `json:"appSecret"`
|
||||
IsShowUpdateBtn string `json:"isShowUpdateBtn"`
|
||||
IsIsv string `json:"isIsv"`
|
||||
IsShow string `json:"isShow"`
|
||||
}
|
||||
|
||||
func (a *API) GetJdAppInfo() (getJdAppInfoResult *GetJdAppInfoResult, err error) {
|
||||
result, err := a.AccessStorePage2("https://openo2o.jddj.com/xmanager/auto/app/appInfo.htm", nil, true, "")
|
||||
if err == nil {
|
||||
utils.Map2StructByJson(result.(map[string]interface{})["data"], &getJdAppInfoResult, false)
|
||||
}
|
||||
return getJdAppInfoResult, err
|
||||
}
|
||||
|
||||
// https://openo2o.jddj.com/xmanager/isv/appManage.htm
|
||||
|
||||
func (a *API) SetCode(code, jdAppID string) (err error) {
|
||||
_, err = a.AccessStorePage2("https://openo2o.jddj.com/xmanager/isv/app/accesstoken.htm", map[string]interface{}{
|
||||
"id": jdAppID,
|
||||
"code": code,
|
||||
}, true, "")
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -293,12 +293,19 @@ func TestExcuteInvoking(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestPeiZhiJdZhangHao(t *testing.T) {
|
||||
for k, v := range interfaceMap {
|
||||
if err := api.UpdateInterStatus(k, v[0].(string), v[1].(int)); err == nil {
|
||||
if err2 := api.SaveMsgUrl(k, "http://callback.test.jxc4.com", "http://callback.jxc4.com", v[1].(int)); err2 == nil {
|
||||
if err3 := api.ExcuteInvoking(k, v[1].(int)); err3 == nil {
|
||||
}
|
||||
}
|
||||
}
|
||||
// for k, v := range interfaceMap {
|
||||
// if err := api.UpdateInterStatus(k, v[0].(string), v[1].(int)); err == nil {
|
||||
// if err2 := api.SaveMsgUrl(k, "http://callback.test.jxc4.com", "http://callback.jxc4.com", v[1].(int)); err2 == nil {
|
||||
// if err3 := api.ExcuteInvoking(k, v[1].(int)); err3 == nil {
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// result, err := api.GetJdNoAuthAppID("364131")
|
||||
result, err := api.GetJdAppInfo()
|
||||
// err := api.SetCode("yCpbjc", "8770")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Log(utils.Format4Output(result, false))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user