Zum Inhalt springen

stevehackman

Mitglied
  • Gesamte Inhalte

    1
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von stevehackman

  1. Hey, ich stehe vor selbigen Problem. Allerdings mit einer etwas anderen methode. Einen GET Request zu senden wie den Kurs abzufragen funktioniert. Nur leider bei Post Parameter stoße ich auf Probleme. Dort erhalte ich selbige Fehlermeldung. Ich denke auch das irgendwas bei mir noch fehlt. Zum testen der Paramter habe ich das folgende Beispiel genau nachberechnet. sowohl der codierte MD5 Post parameter sowie auch die Signatur stimmen mit dem Beispiel überein. In der Logdatei auf Bitcoin.de kann ich sehen das der Request zwar ankommt, der Postparameter jedoch nicht mit übergeben wird. Das ist wohl das derzeitige Problem bei mir. Fehlt mit bei der Übergabe vielleicht noch hein Header? POST-Parameter: { 'type' : 'buy', 'max_amount' : 5.3, 'price' : 255.50 } 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: 'POST' uri: 'https://api.bitcoin.de/v1/orders' Schritt 1: Aufsteigendes Sortieren der POST-Parameter anhand ihres Namens¹ { 'max_amount' : 5.3, 'price' : 255.50 'type' : 'buy', } Schritt 2: Einen validen URL-encoded Query-String aus den POST-Parametern generieren¹ url_encoded_query_string = 'max_amount=5.3&price=255.5&type=buy' Schritt 3: md5-Hash über den in Schritt 2 erstellten Query-String der POST-Parameter bilden post_parameter_md5_hashed_url_encoded_query_string = md5(url_encoded_query_string) // Es wird der MD5-Hash in hexadezimaler Form benötigt => '5f4aece1d75c7adfc5ef346216e9bb11' Schritt 4: Konkatinieren der HMAC-Eingabedaten hmac_data = http_method+'#'+uri+'#'+api_key+'#'+nonce+'#'+post_parameter_md5_hashed_url_encoded_query_string => 'POST#https://api.bitcoin.de/v1/orders#MY_API_KEY#1234567#5f4aece1d75c7adfc5ef346216e9bb11' Schritt 5: Bilden des eigentlichen sha256-HMACs hmac = HMAC('sha256', hmac_data, api_secret) => 'fd7c4c3af90524af1723bf89773904f87afdeaab2b87161799ee65f864aa9e96' Die Übergabe erfolgt per HTTP5.1 Request. Wie gesagt der MD5 Hash sowie die SHA256 verschlüsslung liefern exakt das richtige Ergebnis. Entweder muss der url_encoded_query_string irgendwie noch in die ansteuernde URL eingebunden werden oder sonst was. Im Beispiel für GET Parameter muss es nämlich so gemacht werden. Aber auch dieser Versuch ergab keinen Erfolg. Als Header werden bei POST die entsprechenden Parameter dem Header übergeben. Bei GET Funktioniert alles. Was fehlt mir noch? RequestHeader "X-API-KEY" RequestHeader "X-API-NONCE" RequestHeader "X-API-SIGNATURE"
  2. Hey, ich stehe vor selbigen Problem. Allerdings mit einer etwas anderen methode.

    Einen GET Request zu senden wie den Kurs abzufragen funktioniert. Nur leider bei Post Parameter stoße ich auf Probleme. Dort erhalte ich selbige Fehlermeldung. Ich denke auch das irgendwas bei mir noch fehlt.

    Zum testen der Paramter habe ich das folgende Beispiel genau nachberechnet. sowohl der codierte MD5 Post parameter sowie auch die Signatur stimmen mit dem Beispiel überein. In der Logdatei auf Bitcoin.de kann ich sehen das der Request zwar ankommt, der Postparameter jedoch nicht mit übergeben wird. Das ist wohl das derzeitige Problem bei mir. Fehlt mit bei der Übergabe vielleicht noch hein Header?

    POST-Parameter:
    {
        'type'     : 'buy',
        'max_amount' : 5.3,
        'price'   : 255.50
    }
    
    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: 'POST'
    uri:         'https://api.bitcoin.de/v1/orders'
    

    Schritt 1: Aufsteigendes Sortieren der POST-Parameter anhand ihres Namens¹

    {
        'max_amount' : 5.3,
        'price'   : 255.50
        'type'     : 'buy',
    }
    

    Schritt 2: Einen validen URL-encoded Query-String aus den POST-Parametern generieren¹

    url_encoded_query_string = 'max_amount=5.3&price=255.5&type=buy'
    

    Schritt 3: md5-Hash über den in Schritt 2 erstellten Query-String der POST-Parameter bilden

    post_parameter_md5_hashed_url_encoded_query_string = md5(url_encoded_query_string) // Es wird der MD5-Hash in hexadezimaler Form benötigt
    => '5f4aece1d75c7adfc5ef346216e9bb11'
    

    Schritt 4: Konkatinieren der HMAC-Eingabedaten

    hmac_data = http_method+'#'+uri+'#'+api_key+'#'+nonce+'#'+post_parameter_md5_hashed_url_encoded_query_string
    => 'POST#https://api.bitcoin.de/v1/orders#MY_API_KEY#1234567#5f4aece1d75c7adfc5ef346216e9bb11'
    

    Schritt 5: Bilden des eigentlichen sha256-HMACs

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

    Die Übergabe erfolgt per HTTP5.1 Request. Kann mir da irgendwer ein bisschen weiterhelfen?

×
×
  • 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.