2017-07-02 2 views
0

Ich versuche gerade, mich mit dem Websocket der CEX.IO Bitcoin Exchange zu verbinden. Websocket Verbindung ist in Ordnung, aber zum Zeitpunkt der Authentifizierung habe ich den Fehler: Timestamp is not in 20sec range. Ich weiß nicht, was dieser Fehler ist.Golang Gorilla CEX.IO Websocket-Authentifizierungsfehler

Testfall 1 & 2 für createSignature ist in Ordnung (https://cex.io/websocket-api#authentication).

Authentifizierung Go Code:

func toHmac256(message string, secret string) string { 
    key := []byte(secret) 
    h := hmac.New(sha256.New, key) 
    h.Write([]byte(message)) 
    return strings.ToUpper(hex.EncodeToString(h.Sum(nil))) 
} 

func Signature() (string, string) { 
    nonce := time.Now().Unix() // Edit with Cerise Limón answer 
    message := strconv.FormatInt(nonce, 10) + "API-KEY" 
    signature := api.toHmac256(message, "SECRET-KEY") 
    return signature, nonce 
} 

Antwort

1

Die Fehlermeldung sagt Ihnen, dass der Zeitstempel mehr als 20 Sekunden entfernt von der aktuellen Zeit.

Die API erwartet Zeit in Sekunden, nicht in Nanosekunden. Verwenden Sie Unix, um die Zeit in Sekunden zu erhalten.

 nonce := time.Now().Unix() 

Unix-Zeit ist Sekunden seit Jan 01 1970 UTC.

Wenn dies fehlschlägt, überprüfen Sie, ob Ihre Systemzeit korrekt auf die Sekunde eingestellt ist.

+0

Gleicher Fehler mit 'time.Now(). Unix()' – LeMoussel

+0

Überprüfen Sie, ob Ihre Systemzeit korrekt ist. –

+0

Unix-Zeit ist Sekunden seit Jan 01 1970 (UTC). Ich bitte Sie, zu überprüfen, ob die Uhr Ihres Systems innerhalb von 20 Sekunden auf die richtige Uhrzeit eingestellt ist. –

Verwandte Themen