|
@@ -16,6 +16,7 @@ import (
|
|
|
|
|
|
// refreshToken 同花顺刷新token
|
|
|
var refreshToken = `eyJzaWduX3RpbWUiOiIyMDIzLTAzLTI0IDEzOjQ3OjExIn0=.eyJ1aWQiOiI1NzY2NDgxMDkifQ==.339B8D21168AC21A0F80840544E38378AB2D04A02D325F0CD1C44251915233F6`
|
|
|
+var tokenRedisKey = `THS_SERVER_ACCESS_TOKEN`
|
|
|
|
|
|
func GetEdbDataFromThsHttp(edbCode, startDate, endDate string) (item EdbDataFromThs, err error) {
|
|
|
thsUrl := `https://quantapi.51ifind.com/api/v1/edb_service`
|
|
@@ -94,9 +95,8 @@ func GetEdbDataFromThsHttp(edbCode, startDate, endDate string) (item EdbDataFrom
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-// GetFutureGoodDataFromThsHttp 通过url获取wind的商品数据
|
|
|
+// GetFutureGoodDataFromThsHttp 通过url获取同花顺的商品数据
|
|
|
func GetFutureGoodDataFromThsHttp(edbCode, startDate, endDate string) (item FutureGoodDataFromThs, err error) {
|
|
|
- //thsUrl := utils.Hz_Wind_Data_Url + `edbInfo/ths/future_good?EdbCode=%s&StartDate=%s&EndDate=%s`
|
|
|
thsUrl := `https://quantapi.51ifind.com/api/v1/cmd_history_quotation`
|
|
|
|
|
|
//codes 是 半角逗号分隔的所有代码 "codes":"300033.SZ,600030.SH"
|
|
@@ -197,7 +197,7 @@ func postCurl(urlStr string, dataMap map[string]interface{}, num int) (body []by
|
|
|
}
|
|
|
//logMsg = fmt.Sprint("post request:", reqStr, "; response:", string(body))
|
|
|
//utils.FileLog.Info(logMsg)
|
|
|
- logMsg = fmt.Sprint("post request url:", urlStr, ";params:", reqStr, ";response:", string(body))
|
|
|
+ logMsg = fmt.Sprint("post request url:", urlStr, ";token:", token, ";params:", reqStr, ";response:", string(body))
|
|
|
|
|
|
var response BaseThsInterface
|
|
|
err = json.Unmarshal(body, &response)
|
|
@@ -206,10 +206,10 @@ func postCurl(urlStr string, dataMap map[string]interface{}, num int) (body []by
|
|
|
err = errors.New("Unmarshal Err:" + err.Error())
|
|
|
return
|
|
|
}
|
|
|
- utils.FileLog.Info(fmt.Sprint("post request url:", urlStr, ";params:", reqStr, ";response:", string(body)))
|
|
|
+ utils.FileLog.Info(fmt.Sprint("post request url:", urlStr, ";token:", token, ";params:", reqStr, ";response:", string(body)))
|
|
|
|
|
|
//如果是token失效,同时只是第一次请求(没有尝试强制刷新token,那么重新请求)
|
|
|
- if response.ErrorCode == -1010 && num <= 0 {
|
|
|
+ if utils.InArrayByInt([]int{-1010}, int(response.ErrorCode)) && num <= 0 {
|
|
|
//token失效
|
|
|
_, tmpErr := refreshAccessToken()
|
|
|
if tmpErr != nil {
|
|
@@ -227,7 +227,6 @@ func postCurl(urlStr string, dataMap map[string]interface{}, num int) (body []by
|
|
|
}
|
|
|
|
|
|
// GetAccessToken 获取accessToken
|
|
|
-
|
|
|
func GetAccessToken(isRefresh bool) (token string, err error) {
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
@@ -235,7 +234,7 @@ func GetAccessToken(isRefresh bool) (token string, err error) {
|
|
|
//go utils.SendEmail(utils.APPNAME+"获取上海的token失败:"+time.Now().Format("2006-01-02 15:04:05"), err.Error(), utils.EmailSendToUsers)
|
|
|
}
|
|
|
}()
|
|
|
- token, redisErr := utils.Rc.RedisString("SH_ACCESS_TOKEN")
|
|
|
+ token, redisErr := utils.Rc.RedisString(tokenRedisKey)
|
|
|
//如果从redis中accessToken 获取失败或者token为空了,再或者需要强制刷新了,那么重新获取accessToken
|
|
|
if redisErr != nil || token == `` || isRefresh {
|
|
|
return refreshAccessToken()
|
|
@@ -265,7 +264,7 @@ func refreshAccessToken() (token string, err error) {
|
|
|
}
|
|
|
|
|
|
//token存入redis
|
|
|
- err = utils.Rc.Put("THS_SERVER_ACCESS_TOKEN", token, time.Duration(expireTime.Unix()-600)*time.Second)
|
|
|
+ err = utils.Rc.Put(tokenRedisKey, token, time.Duration(expireTime.Unix()-600)*time.Second)
|
|
|
if err != nil {
|
|
|
go alarm_msg.SendAlarmMsg("获取同花顺的token失败;同花顺token存入redis失败,ERR:"+err.Error(), 3)
|
|
|
//go utils.SendEmail(utils.APPNAME+"获取上海的token失败:"+time.Now().Format("2006-01-02 15:04:05"), "上海token存入redis失败:", utils.EmailSendToUsers)
|
|
@@ -306,6 +305,7 @@ func getAccessToken() (tokenData TokenData, err error) {
|
|
|
err = errors.New("NewRequest Err:" + err.Error())
|
|
|
return
|
|
|
}
|
|
|
+ utils.FileLog.Info("同花顺刷新token:" + string(body))
|
|
|
|
|
|
var tokenResp GetTokenResp
|
|
|
err = json.Unmarshal(body, &tokenResp)
|