Zum Inhalt springen

Entwicklung von Python Skript zur Investition


Mr.Davidwater

Empfohlene Beiträge

Hi,

derzeit Programmiere ich in Python ein Skript für die API von Bitcoin.de. Leider bekommen ich immer den selben Fehler und kann ihn leider nicht finden.
Soweit ich sehen kann müsste mein Hash Code richtig sein den ich generiere, es liegt wahrscheinlich an der Versendung der Anfrage. 
Bekomme genau den selben Hash Code mit dem php Interpreter raus.
 

Bitte einfach erklären, kann mit Fachwörter nicht viel Anfangen. Würde mich sehr über ein Code Beispiel freuen 😄
 

Skript für den Hash Code:

import hashlib
import hmac


Post_Parameter={''}
GET_Parameter={''}
api_key= 'mein Api-Key'
nonce= "1234569"
api_secret= 'mein Api-secret'
http_method= 'GET'
uri= 'https://api.bitcoin.de/v4/orders'

get_parameter_url_encoded_query_string = ''
uri = uri+'?'+get_parameter_url_encoded_query_string
post_parameter_md5_hashed_url_encoded_query_string = hashlib.md5(''.encode('UTF-8')).hexdigest()
hmac_data= http_method+'#'+uri+'#'+api_key+'#'+nonce+'#'+post_parameter_md5_hashed_url_encoded_query_string
print(hmac_data)

hmac1= hmac.new(b'mein api-secret', b'', hashlib.sha256)
hmac1.update(bytes(hmac_data, 'utf-8'))
print(hmac1.hexdigest())

Mein Skript für die Abfrage:

import requests

url = "https://api.bitcoin.de/v4/orders"

payload={}
headers = {
  'X-API-KEY': 'Api-Key',
  'X-API-NONCE': "1234569",
  'X-API-SIGNATURE': 'signatur',

}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.json())

Fehler Meldung:

{'errors': [{'message': 'Invalid signature', 'code': 5}], 'credits': 23}

 

Dokumentation Bitcoin.de: 

Signatur-GET-Beispiel

Es soll die API-Funktion showOrderbook mit den folgenden Ausgangswerten durchgeführt werden:

GET-Parameter:
{
    'type'    : 'buy',
    'amount'  : 5.3,
    'price'   : 255.50
}

POST-Parameter:
{
}

api_key:     'MY_API_KEY'    // Entspricht dem eigenen API-Key
nonce:       1234567         // Das für den aktuellen Request verwendete Nonce
api_secret:  'MY_API_SECRET' // Entspricht dem eigenen API-Secret
http_method: 'GET'
uri:         'https://api.bitcoin.de/v4/orders'

Schritt 1: einen validen URL-encoded Query-String aus den GET-Parametern generieren

get_parameter_url_encoded_query_string = 'type=buy&amount=5.3&price=255.5' // Die Reihenfolge der GET-Parameter ist irrelevant

Schritt 2: Erweitern der URI um GET-Parameter

uri = uri+'?'+get_parameter_url_encoded_query_string
=> 'https://api.bitcoin.de/v4/orders?type=buy&amount=5.3&price=255.5'

Schritt 3: md5-Hash der POST-Parameter für die HMAC-Daten erstellen¹

post_parameter_md5_hashed_url_encoded_query_string = md5('');
=> 'd41d8cd98f00b204e9800998ecf8427e'

Schritt 4: Konkatinieren der HMAC-Eingabedaten

hmac_data = http_method+'#'+uri+'#'+api_key+'#'+nonce+'#'+post_parameter_md5_hashed_url_encoded_query_string
=> 'GET#https://api.bitcoin.de/v4/orders?type=buy&amount=5.3&price=255.5#MY_API_KEY#1234567#d41d8cd98f00b204e9800998ecf8427e'

Schritt 5: Bilden des eigentlichen sha256-HMACs

hmac = HMAC('sha256', hmac_data, api_secret)
=> ''

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...

Wichtige Information

Wir haben Cookies auf Deinem Gerät platziert. Das hilft uns diese Webseite zu verbessern. Du kannst die Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass Du damit einverstanden bist, weiterzumachen.