[Fix] 修正了huobigateway与GET相关的签名方法
This commit is contained in:
parent
d25065fdea
commit
f0c192cbbf
@ -48,6 +48,7 @@ class Request(object):
|
||||
statusCode = 'terminated'
|
||||
else:
|
||||
statusCode = self.response.status_code
|
||||
# todo: encoding error
|
||||
return ("reuqest : {} {} {} because {}: \n"
|
||||
"headers: {}\n"
|
||||
"params: {}\n"
|
||||
|
@ -19,8 +19,8 @@ from vnpy.api.websocket import WebsocketClient
|
||||
from vnpy.trader.vtGateway import *
|
||||
from vnpy.trader.vtFunction import getTempPath, getJsonPath
|
||||
|
||||
#REST_HOST = 'https://api.huobipro.com'
|
||||
REST_HOST = 'https://api.huobi.pro/v1'
|
||||
REST_HOST = 'https://api.huobipro.com'
|
||||
# REST_HOST = 'https://api.huobi.pro/v1'
|
||||
WEBSOCKET_MARKET_HOST = 'wss://api.huobi.pro/ws' # Global站行情
|
||||
WEBSOCKET_TRADE_HOST = 'wss://api.huobi.pro/ws/v1' # 资产和订单
|
||||
|
||||
@ -37,14 +37,21 @@ def _split_url(url):
|
||||
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
def createSignature(apiKey, method, host, path, secretKey):
|
||||
"""创建签名"""
|
||||
sortedParams = (
|
||||
def createSignature(apiKey, method, host, path, secretKey, getParams=None):
|
||||
"""
|
||||
创建签名
|
||||
:param getParams: dict 使用GET方法时附带的额外参数(urlparams)
|
||||
:return:
|
||||
"""
|
||||
sortedParams = [
|
||||
("AccessKeyId", apiKey),
|
||||
("SignatureMethod", 'HmacSHA256'),
|
||||
("SignatureVersion", "2"),
|
||||
("Timestamp", datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S'))
|
||||
)
|
||||
]
|
||||
if getParams:
|
||||
sortedParams.extend(getParams.items())
|
||||
sortedParams = list(sorted(sortedParams))
|
||||
encodeParams = urllib.urlencode(sortedParams)
|
||||
|
||||
payload = [method, host, path, encodeParams]
|
||||
@ -213,16 +220,13 @@ class HuobiRestApi(RestClient):
|
||||
request.headers = {
|
||||
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36"
|
||||
}
|
||||
|
||||
additionalParams = createSignature(self.apiKey,
|
||||
paramsWithSignature = createSignature(self.apiKey,
|
||||
request.method,
|
||||
self.signHost,
|
||||
request.path,
|
||||
self.apiSecret)
|
||||
if not request.params:
|
||||
request.params = additionalParams
|
||||
else:
|
||||
request.params.update(additionalParams)
|
||||
self.apiSecret,
|
||||
request.params)
|
||||
request.params = paramsWithSignature
|
||||
|
||||
if request.method == "POST":
|
||||
request.headers['Content-Type'] = 'application/json'
|
||||
@ -500,7 +504,7 @@ class HuobiWebsocketApiBase(WebsocketClient):
|
||||
#----------------------------------------------------------------------
|
||||
def onErrorMsg(self, packet): # type: (dict)->None
|
||||
""""""
|
||||
self.gateway.writeLog(packet['err-msg']))
|
||||
self.gateway.writeLog(packet['err-msg'])
|
||||
|
||||
|
||||
########################################################################
|
||||
|
Loading…
Reference in New Issue
Block a user