Na wstepie
Mam problem z API request ktore wymaga podania parametrow (np. placing orders). Problem tyczy sie nowego API 3.0 na gieldzie bitbay.net.
Przepisuje dzialajacy kod z API 2.0 do API 3.0. Trzymam sie oficjalnej dokumentacji https://docs.bitbay.net/v3.1.0/docs
Moj kod w python3.6 (wciecia sie wyrownaly niestety ale mysle ze jest czytelnie)
Problemimport requests
import json
import uuid
import time
import hashlib
import hmac
credentials = {'priv': 'xxx', 'pub': 'xxx'}
payload = {
'url':'https://api.bitbay.net/rest/trading/offer/BTC-PLN',
'params':{
'mode':'limit',
'offerType':'Sell',
'amount':'0.01',
'rate':'30000.0',
}
}
timestamp = str(int(time.time()))
string_data = credentials ['pub'] + timestamp + str(payload['params'])
sign = hmac.new(
credentials['priv'].encode(),
string_data.encode(),
hashlib.sha512
)
payload['headers'] = {
'API-Hash':sign.hexdigest(),
'API-Key': credentials['pub'],
'Request-Timestamp': timestamp,
'Operation-Id': str(uuid.uuid4())}
server_response = requests.post(**payload).json()
Powyzszy kod zwraca blad: INVALID_HASH_SIGNATURE
Zaznaczam ze podobny kod tylko bez parametrow, ktory korzysta z requests.get() dziala poprawnie (np. balance query), wiec domyslam sie ze problem tkwi w tym jak przekazuje parametry. Kontaktowalem sie juz z supportem z bitbay ale sa malo pomocni, mam wrazenie ze przydzielili do mnie jakiegos praktykanta...
Czy ktos bylby w stanie mi w tym pomoc?
Pozdrawiam,
Wojtek