| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 | 
							- package pdd
 
- import (
 
- 	"bytes"
 
- 	"duoduo/conf"
 
- 	"duoduo/tools"
 
- 	"duoduo/tools/app"
 
- 	"fmt"
 
- 	"io/ioutil"
 
- 	"net/http"
 
- 	"sort"
 
- )
 
- func PostPdd(inputObj interface{}, outputObj interface{}, function string) error {
 
- 	//数据转json
 
- 	jsonData, err := tools.JsonMarshal(inputObj)
 
- 	if err != nil {
 
- 		fmt.Println(err.Error())
 
- 		return err
 
- 	}
 
- 	var jsonStr = []byte(jsonData) //转换二进制
 
- 	buffer := bytes.NewBuffer(jsonStr)
 
- 	fmt.Print("jsonData = ", jsonData)
 
- 	confIni, errConf := conf.ConnIni()
 
- 	if errConf != nil {
 
- 		fmt.Println(errConf)
 
- 	}
 
- 	path := confIni.MustValue("pdd", "api_http")
 
- 	fmt.Print(path)
 
- 	//path = "https://gw-api.pinduoduo.com/api/router?type=pdd.ddk.goods.search&data_type=JSON&client_id=a5d05569c6584a50bfb6600b2d150bae×tamp=1620461572&sign=8F2C23805C8B8A388AFB512DD3EAD727"
 
- 	request, err := http.NewRequest("POST", path, buffer)
 
- 	if err != nil {
 
- 		fmt.Println(err.Error())
 
- 		return err
 
- 	}
 
- 	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
 
- 	client := http.Client{}
 
- 	//创建客户端
 
- 	resp, err := client.Do(request) //发送请求
 
- 	if err != nil {
 
- 		fmt.Printf("client.Do%v", err)
 
- 		return err
 
- 	}
 
- 	respBytes, err := ioutil.ReadAll(resp.Body)
 
- 	fmt.Print(string(respBytes))
 
- 	return nil
 
- }
 
- func PostDDk(inputObj interface{}, outputObj interface{}) (string, error) {
 
- 	//数据转json
 
- 	jsonData, err := tools.JsonMarshal(inputObj)
 
- 	if err != nil {
 
- 		return "", err
 
- 	}
 
- 	fmt.Print(jsonData)
 
- 	var jsonStr = []byte(jsonData) //转换二进制
 
- 	buffer := bytes.NewBuffer(jsonStr)
 
- 	confIni, errConf := conf.ConnIni()
 
- 	if errConf != nil {
 
- 		return "", err
 
- 	}
 
- 	path := confIni.MustValue("pdd", "api_http")
 
- 	fmt.Print(path)
 
- 	request, err := http.NewRequest("POST", path, buffer)
 
- 	if err != nil {
 
- 		fmt.Println(err.Error())
 
- 		return "", err
 
- 	}
 
- 	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
 
- 	client := http.Client{}
 
- 	//创建客户端
 
- 	resp, err := client.Do(request) //发送请求
 
- 	if err != nil {
 
- 		fmt.Printf("client.Do%v", err)
 
- 		return "", err
 
- 	}
 
- 	respBytes, err := ioutil.ReadAll(resp.Body)
 
- 	if err != nil {
 
- 		return "", err
 
- 	}
 
- 	fmt.Print("respBytes =           ", string(respBytes))
 
- 	return string(respBytes), nil
 
- }
 
- func DDKSign(inputObj interface{}) (string, error) {
 
- 	jsonData, err := tools.JsonMarshal(inputObj)
 
- 	if err != nil {
 
- 		return "", err
 
- 	}
 
- 	pddSearch := make(map[string]string)
 
- 	err = tools.JsonUnmarshal(jsonData, &pddSearch)
 
- 	if err != nil {
 
- 		return "", err
 
- 	}
 
- 	confIni, errConf := conf.ConnIni()
 
- 	if errConf != nil {
 
- 		return "", err
 
- 	}
 
- 	path := confIni.MustValue("pdd", "api_http")
 
- 	fmt.Print(path)
 
- 	var ks []string
 
- 	for k, v := range pddSearch {
 
- 		fmt.Print(k)
 
- 		fmt.Print(v)
 
- 		if v != "sign" {
 
- 			ks = append(ks, k)
 
- 		}
 
- 	}
 
- 	sort.Strings(ks)
 
- 	plainText := confIni.MustValue("pdd", "client_secret")
 
- 	//排序后拼接数据
 
- 	for i := 0; i < len(ks); i++ {
 
- 		fmt.Print(ks[i])
 
- 		plainText = plainText + ks[i]
 
- 		plainText = plainText + pddSearch[ks[i]]
 
- 	}
 
- 	plainText += confIni.MustValue("pdd", "client_secret")
 
- 	fmt.Print("plainText = ", plainText)
 
- 	sign := tools.MD5(plainText)
 
- 	fmt.Print(sign)
 
- 	return sign, nil
 
- }
 
- //调用阿里接口
 
- func Post(inputObj interface{}, outputObj interface{}, function string) error {
 
- 	//加载配置
 
- 	confIni, errConf := conf.ConnIni()
 
- 	if errConf != nil {
 
- 		fmt.Println(errConf)
 
- 	}
 
- 	hostAdd := fmt.Sprintf("%s", confIni.MustValue("aliSet", "ali_host"))
 
- 	fmt.Println(hostAdd)
 
- 	//数据转json
 
- 	jsonData, err := tools.JsonMarshal(inputObj)
 
- 	if err != nil {
 
- 		fmt.Println(err.Error())
 
- 		return err
 
- 	}
 
- 	app.TispELKLogs(function, "POST", jsonData)
 
- 	fmt.Print("json = ", jsonData)
 
- 	request, err := http.NewRequest("POST", hostAdd, bytes.NewBuffer([]byte(jsonData)))
 
- 	if err != nil {
 
- 		fmt.Println(err.Error())
 
- 		return err
 
- 	}
 
- 	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
 
- 	client := http.Client{}
 
- 	//创建客户端
 
- 	resp, err := client.Do(request) //发送请求
 
- 	if err != nil {
 
- 		fmt.Printf("client.Do%v", err)
 
- 		return err
 
- 	}
 
- 	respBytes, err := ioutil.ReadAll(resp.Body)
 
- 	if err != nil {
 
- 		fmt.Printf("ioutil.ReadAll%v", err)
 
- 		return err
 
- 	}
 
- 	fmt.Println(string(respBytes))
 
- 	err = tools.JsonUnmarshal(string(respBytes), outputObj)
 
- 	if err != nil {
 
- 		return err
 
- 	}
 
- 	app.TispELKOutDataLogs(function, "POST", string(respBytes))
 
- 	return nil
 
- 	////byte数组直接转成string,优化内存
 
- 	//str := (*string)(unsafe.Pointer(&respBytes))
 
- }
 
 
  |