package jdshopapi import ( "crypto/aes" "crypto/cipher" "encoding/base64" "encoding/hex" "fmt" "io/ioutil" "net/http" "testing" "git.rosy.net.cn/baseapi/utils" ) func TestCreateShopCategory(t *testing.T) { var CreateShopCategoryParams = []*CreateShopCategoryParam{ &CreateShopCategoryParam{ HomeShow: "0", ID: "0", Open: "", OrderNo: "0", ParentID: "", Title: "测试1", Type: "3", }, } result, _ := api.CreateShopCategory(CreateShopCategoryParams) fmt.Println(result) } func TestUpdateStoreStatus(t *testing.T) { err := api.UpdateStoreStatus(24332466, 1) if err != nil { t.Fatal(err) } } func TestNewInfoList(t *testing.T) { result, err := api.NewInfoList(1) if err != nil { t.Fatal(err) } t.Log(utils.Format4Output(result, false)) } func Test11(t *testing.T) { request, _ := http.NewRequest(http.MethodGet, "https://stores.shop.jd.com/stores/updateStoreStatus?storeId=24339301&storeStatus=1", nil) c := &http.Cookie{ Name: "thor", Value: "80FAF09E9A09B6E618A68057BDFCFCB88A0E4CE7743FBEC84F10D992F9C6A4119DF98DA3CAAE9C7F17BEB62884625B4E7BC82422A90F45F02EA293572D951B055EF0B5F603AEA568DFD4234138F841EC1AC1F67B30B48AAC9EAD5FBAE7943E1DCC99E99D8358C82F7832B71A2BCB31624E16BBF561720443DE966BDA3588406233A90224D9089710B102AA98B979B9B3", } request.AddCookie(c) client := &http.Client{} fmt.Println("test1", request.URL) response, _ := client.Do(request) defer response.Body.Close() bodyData, _ := ioutil.ReadAll(response.Body) fmt.Println("test1", string(bodyData)) } func TestAllOrders(t *testing.T) { result, err := api.AllOrders(&AllOrdersParam{ Current: 1, PageSize: 1, OrderID: "118793082128", }) if err != nil { t.Fatal(err) } t.Log(utils.Format4Output(result, false)) } func TestOrderDetail(t *testing.T) { result, err := api.OrderDetail("125138699851") if err != nil { t.Fatal(err) } t.Log(utils.Format4Output(result, false)) } func TestPhoneSensltiveInfo(t *testing.T) { result, err := api.PhoneSensltiveInfo("124396047880", "10b1707dc87755373d488a7a4f422f7d") if err != nil { t.Fatal(err) } t.Log(utils.Format4Output(result, false)) } func TestUpdateWaybill(t *testing.T) { err := api.UpdateWaybill("123076499052", "1274", "88328977356545 ") if err != nil { t.Fatal(err) } // t.Log(utils.Format4Output(result, false)) } func TestTryGetCookie(t *testing.T) { result, err := api.TryGetCookie() if err != nil { t.Fatal(err) } t.Log(utils.Format4Output(result, false)) } func TestAAADS(t *testing.T) { str := "AASWvkdk5a60bjm3lFqaoCyzU8toVp+3kKjheuOwxzWZH+adxCfv+Bv9BD0DP/WDy6Y=" data, _ := base64.StdEncoding.DecodeString(str) dataStr := hex.EncodeToString(data) fmt.Println("all:", dataStr) //96be4764e5aeb46e39b7945a9aa02cb3 fmt.Println("key ID:", dataStr[4:36]) fmt.Println("IV:", dataStr[36:68]) data2, _ := base64.StdEncoding.DecodeString("XsGNdyDyDHnR79iKU6d5LTSJYaQyWAEssDoD7VM5Kks=") dataStr2 := hex.EncodeToString(data2) fmt.Println(dataStr2) fmt.Println(len(data2)) fmt.Println(len([]byte(string(data2)))) fmt.Println(len([]byte(dataStr[36:68]))) iv := base64.StdEncoding.EncodeToString([]byte(dataStr[36:68])) fmt.Println(len([]byte(iv))) fmt.Println(iv) src := base64.StdEncoding.EncodeToString([]byte(dataStr[68:])) fmt.Println(len([]byte(src))) fmt.Println(string(data[18:34])) // str2 := []byte(dataStr[68:]) // key := []byte(dataStr2) decryptedData, err := Decrypt(data[34:50], data2, data[18:34]) if err != nil { t.Fatal(err) } // data3, _ := simplifiedchinese.GBK.NewDecoder().Bytes(decryptedData) //gbk 转 utf-8 fmt.Println("data", string(decryptedData)) } func Decrypt(decryptBytes, key, iv []byte) ([]byte, error) { block, err := aes.NewCipher(key) if err != nil { return nil, err } fmt.Println(block.BlockSize()) blockMode := cipher.NewCBCDecrypter(block, iv) decrypted := make([]byte, len(decryptBytes)) blockMode.CryptBlocks(decrypted, decryptBytes) fmt.Println(decrypted) decrypted = PKCS5UnPadding(decrypted) return decrypted, nil } func PKCS5UnPadding(decrypted []byte) []byte { length := len(decrypted) unPadding := int(decrypted[length-1]) return decrypted[:(length - unPadding)] } func CBCDecript(key, iv, src []byte) (dst []byte, err error) { var ( block cipher.Block blockMode cipher.BlockMode ) if len(iv) != aes.BlockSize { return nil, fmt.Errorf("iv") } if len(key) != 32 { return nil, fmt.Errorf("key") } if block, err = aes.NewCipher(key); err != nil { return nil, err } blockMode = cipher.NewCBCDecrypter(block, iv) dst = make([]byte, len(src)) blockMode.CryptBlocks(dst, src) dst = PKCS5UnPadding(dst) return }