Buscar
Generar cadenas de autenticación (API REST)
Algunos endpoints REST permiten ejecutar operaciones sensibles como realizar pedidos o solicitar unretiro 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.
EjemploPara operar el endpoint libro de órdenes elija el argumento símbolo con valorfi_xbtusd_180615. postData viene dado por symbol=fi_xbtusd_180615.

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+OcUOOJeFtZkr8mVwbAndU3Kz4Q+eG
Según estas entradas, la autenticación debe calcularse de la siguiente manera:
  1. 1
    Encadenar postData + nonce + endpointPath
  2. 2
    Aplicar la función Hash al resultado del paso 1 con el algoritmo SHA-256
  3. 3
    Utilizar la decodificación Base64 para la api_secret
  4. 4
    Utilizar el resultado del paso 3 para codificar via Hash el resultado del paso 2 con el algoritmo HMAC-SHA-512 algorithm
  5. 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();}