Algunos endpoints REST permiten ejecutar operaciones sensibles como realizar pedidos o solicitar un
retiro de activos digitales. Por lo tanto, estos endpoints privados pueden ser solicitados únicamente a través de peticiones encriptadas y un proceso de autenticación (authent). La autenticación debe ser incluida en cada solicitud y es calculada a partir de las siguientes entradas:
retiro de activos digitales. Por lo tanto, estos endpoints privados pueden ser solicitados únicamente a través de peticiones encriptadas y un proceso de autenticación (authent). La autenticación debe ser incluida en cada solicitud y es calculada a partir de las siguientes entradas:
PostData
postData es un "&" encadenamiento en la forma <argument>=<value> y es específica para cada endpoint REST.
Ejemplo | Para operar el endpoint libro de órdenes elija el argumento símbolo con valor |
---|
Nonce
Nonce es un parámetro entero que se incrementa continuamente. Un buen nonce es el tiempo de su sistema en milisegundos (en formato de cadena). Nuestro sistema tolera nonces que están fuera de servicio durante un breve periodo de tiempo.
Example 1415957147987 |
---|
Muchos problemas de autenticación están relacionados con un nonce incorrecto. Un nuevo par de claves API restablecerá automáticamente el nonce y resolverá estos problemas.
Endpoint Path
endpointPath Es la extensión URL del endpoint.
Ejemplo /api/v3/orderbook |
---|
API Secret
La api_secret se obtiene como se ha descrito en la sección anterior.
Ejemplo | rttp4AzwRfYEdQ7R7X8Z/04Y4TZPa97pqCypi3xXxAqftygftnI6H9yGV+O |
---|
Según estas entradas, la autenticación debe calcularse de la siguiente manera:
- 1.EncadenarpostData+nonce+endpointPath
- 2.Aplicar la función Hash al resultado del paso 1 con el algoritmo SHA-256
- 3.Utilizar la decodificación Base64 para la api_secret
- 4.Utilizar el resultado del paso 3 para codificar via Hash el resultado del paso 2 con el algoritmo HMAC-SHA-512 algorithm
- 5.Decodificar el resultado del paso 4 con Base64
Ejemplo | ||
---|---|---|
A continuación se muestra una implementación de la autenticación en Java. Para ver ejemplos completos de trabajo en diferentes lenguajes de programación, consulte la Sección Recursos adicionales.public static String getAuthent(String postData, String nonce, String endpointPath, String secretKeyBase64) { Mac mac512; MessageDigest sha256; try { SecretKey secretKey = new SecretKeySpec (Base64.decode(secretKeyBase64.getBytes()), HMAC_SHA_512); mac512 = Mac.getInstance(HMAC_SHA_512); mac512.init(secretKey); sha256 = MessageDigest.getInstance("SHA-256"); } catch (IOException e) { ... } catch (InvalidKeyException e) { ... } catch (NoSuchAlgorithmException e) { ... } sha256.update(postData.getBytes()); sha256.update(nonce.getBytes()); sha256.update(endpointPath.getBytes()); mac512.update(sha256.digest()); return Base64.encodeBytes(mac512.doFinal()).trim(); } |