2017-12-28 28 views
0

Ich möchte die API von bitgrail (docs: https://bitgrail.com/api-documentation) verwenden. Und fordern Sie die Anzahl der Salden an. Dazu müssen Sie ein SIGNATURE setzen, das die verschlüsselten Post-Parameter mit HMAC-SHA512 mit Ihrem API-Secret enthält.Axios verschlüsselte POST-Parameter

Also müssen Sie diese Daten gesendet:

Rubrik:

KEY - Public API-Schlüssel

SIGNATURE - verschlüsselt POST-Parameter mit HMAC-SHA512 alghoritm mit Ihrem geheimen API-Schlüssel

Daten:

nonce - Integer-Nummer, immer größer als Nonce des vorherigen Aufrufs.

Aber jedes Mal, wenn ich versuche, die Anfrage zu senden, bekomme ich eine 'Authentifizierung fehlgeschlagen'-Fehler von Bitgrail.

Die params sind wie so gesetzt:

params = {} 
params.nonce = n(); 

und dann wie folgt verschlüsselt:

let hmac = crypto.createHmac('sha512', 'MYSECRET'); 
let digest = hmac.update(params.toString()).digest('hex'); 
let signature = new Buffer(digest).toString('base64'); 

Vielleicht die 'params.toString()' nicht funktioniert. Muss ich die Variable params als Array setzen?

Antwort

0

Ich dachte, es ist unser selbst, mit const { URLSearchParams } = require('url'); und Löschen dieser Zeile: let signature = new Buffer(digest).toString('base64'); und nur mit dem Digest als Signatur.