2017-06-06 10 views
0

HitBTCのRestfull APIからPython 3で注文するプログラムを作成しています。
正しく実装されていると思いますが、エラーが返されます。
エラーは403間違った署名です。
ドキュメントの署名の定義は、連結されたuriとpostDataのhmac-sha 512の小文字の16進表現です。
HitBTC文書 - >https://hitbtc.com/api#tradingrestful
下記のプログラムの間違いを教えてください。python3 HitBTC Restfull API

API_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX' 
SECRET_KEY = 'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY' 
BASE_URL = 'http://demo-api.hitbtc.com' 

nonce = str(int(time.mktime(datetime.datetime.now().timetuple()) * 1000 + datetime.datetime.now().microsecond/1000)) 
req = { 
    'clientOrderId': "".join(random.choice(string.digits + string.ascii_lowercase)for _ in range(30)), 
    'symbol': 'BTCUSD', 
    'side': 'buy', 
    'price': '3', 
    'quantity': '100', 
    'type': 'limit' 
} 
postdata = urllib.parse.urlencode(req) 
url_path = '/api/1/trading/new_order?apikey=' + API_KEY + '&nonce=' + nonce 
signature = hmac.new(SECRET_KEY.encode(), (url_path + postdata).encode(), hashlib.sha512).hexdigest() 
reuslt = requests.post(BASE_URL + url_path, params=postdata, headers={'X-Signature': signature}) 

print(reuslt.json()) 
+0

あなたはurlquotedデータをハッシングし、JSONを送信しています。この方法では、ハッシュは一致しません。 –

+0

私はコメントを見ました。どうもありがとうございました。私はそれを修正したが、うまくいかなかった。 –

答えて

0

なぜホイールを再構築していますか? Githubのofficial hitbtc python code clientを使用する方がよいでしょう。

create an account on Hitbtccreate API keyを取得してから、アクセス権を追加します。あなたはpython client apiで仕事をすることができます。

そのAPI V1はを時代遅れさも考慮し、それは、API V2にスイッチに優れていてください。

最後にofficial Hitbtc API documentationを参照してください。

大丈夫

関連する問題