growth.go 1.55 KB
package logic

import (
	"common/logger"
	"crypto/md5"
	"encoding/hex"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"
	"time"
)

//2021-09-14
//https://ph65bkcsj6.feishu.cn/docs/doccnGB6RA8uygWZTLTeMbirQLQ#

func MD5(text string) string {
	ctx := md5.New()
	ctx.Write([]byte(text))
	return hex.EncodeToString(ctx.Sum(nil))
}

func createSign(open_id, aid string, gameid, appsecret string) (sign string, tim int64) {
	tim = time.Now().Unix()
	signStr := fmt.Sprintf("%s%s%s%d%s", open_id, aid, gameid, tim, appsecret)

	logger.Error("signStr:", signStr)

	sign = MD5(signStr)

	logger.Error("sign:", sign)
	return
}

//获取global_id
func GetGrowthRight(open_id, aid string, device_id int, gameid, appsecret string) (ret GetToutiaoGrowthRightResp, err error) {

	sign, tim := createSign(open_id, aid, gameid, appsecret)

	url := fmt.Sprintf("%s?open_id=%s&aid=%s&device_id=%d&gameid=%s&timestamp=%d&sign=%s", GROWTHRIGHTURL, open_id, aid, device_id, gameid, tim, sign)

	client := &http.Client{}
	reqest, err := http.NewRequest("GET", url, nil)
	//res, err := http.Get(url)
	if err != nil {
		logger.Error("GetGrowthRight err=%v", err)
		return
	}

	if TOUTIAOENV == 0 {
		logger.Error("GetGrowthRight url:", url)
		reqest.Header.Add("x-use-ppe", "1")
		reqest.Header.Add("x-tt-env", "ppe_gold_center_growth")
		logger.Error("GetGrowthRight TOUTIAOENV:", TOUTIAOENV)
	}

	res, _ := client.Do(reqest)

	result, _ := ioutil.ReadAll(res.Body)
	defer res.Body.Close()

	err = json.Unmarshal(result, &ret)
	if err != nil {
		logger.Error("GetGrowthRight err=%v", err)
		return
	}

	return

}