Saltar al contenido principal
Traducción Automática

Esta página utiliza traducción automática. Para cualquier inconsistencia, consulte la documentación en inglés.

Autorización

Obtención de las claves de autorización de la API

Las claves de acceso a la API se pueden obtener en su cuenta personal, en la sección "API Keys".

Restricción del acceso por dirección IP

Para garantizar la seguridad, el acceso a la API está restringido por dirección IP. Al crear o editar una clave de API en su cuenta personal, debe especificar una lista de direcciones IP permitidas.

Configuración obligatoria

No se puede activar una clave de API sin especificar al menos una dirección IP. Solo se permiten direcciones IP públicas: no se admiten direcciones privadas ni localhost.

Autorización de una solicitud a la API

La autorización se realiza enviando los siguientes encabezados en la solicitud:

EncabezadoValorFormatoObligatorio
X-Processing-KeyClave pública de la API obtenida en su cuenta personalGUID sin guiones ni llavesObligatorio
X-Processing-TimestampMarca de tiempo en milisegundos en que se creó y envió la solicitudMarca de tiempo Unix en milisegundosObligatorio
X-Processing-RecvWindowNúmero de milisegundos posteriores a la marca de tiempo durante los cuales la solicitud es válidaEnteroOpcional (5000 ms por defecto)
X-Processing-SignatureDatos de la solicitud firmados con la clave secreta HMAC-SHA512Valor codificado en Base64Obligatorio

Cálculo de la firma X-Processing-Signature

Algoritmo

  1. Forme los datos que se van a firmar como una cadena concatenando partes de la solicitud en el siguiente orden:

    1. Valor del encabezado X-Processing-Timestamp +
    2. Valor del encabezado X-Processing-RecvWindow (si se envía) +
    3. Tipo de método HTTP de la solicitud (GET, POST, etc.) +
    4. URL relativa de la solicitud (ruta + parámetros de consulta) +
    5. Cuerpo de la solicitud (si se envía)
  2. Calcule el valor de la firma de los datos de la solicitud como una secuencia de bytes:

    • Algoritmo: HMACSHA512
    • Clave secreta: la secuencia de bytes de la clave secreta obtenida a partir del valor de la clave secreta codificado en base64
    • Datos a firmar: la secuencia de bytes de la cadena a firmar, codificada en UTF-8
  3. Pase el valor de la firma en el encabezado X-Processing-Signature, codificado en base64

Ejemplo de cálculo de la firma

Claves de la API

ClaveValor
apiPublicKeyd93b40983c61423c9a84-9956bf1c3549
apiSecretKeyKTxbhABQWghHHkeOFUAUFIb8u9S2rr0nVklG7/x9EtXKdq9sELhhfYbdsTL1QGK5DWsjrxzTeAP2Zf/hrkv3ZK210fmU/ld30avXEzjHCeBoxYXPCjuTEWtkiFHEOfBczL85rFsLeu0fGZVFmOmnihnMTVbkjmgcSqfYWcpKKYE=

Solicitud

curl -X POST "https://api.crypto2b.com/v1/channels/take" \
-H "Content-Type: application/json" \
-H "X-Processing-Key: d93b40983c61423c9a849956bf1c3549" \
-H "X-Processing-Signature: meQrmb8yTnQK3PJTxGakG71iUVpVxgxcj5B30H7XPhaoP0eiRV2JRBZbgk5vwiqUv5snGcKapousInHtn/Rodg==" \
-H "X-Processing-Timestamp: 1499827320350" \
-H "X-Processing-RecvWindow: 6000" \
-d '{"currencyShortName":"USDT","transportProtocol":"trc20","foreignId":"user-007"}'

Pasos del cálculo

  1. Cadena a firmar:

    14998273203506000POST/v1/channels/take{"currencyShortName":"USDT","transportProtocol":"trc20","foreignId":"user-007"}
  2. Secuencia de bytes (HEX) de la cadena a firmar en UTF-8:

    3134393938323733323033353036303030504f53542f76312f6368616e6e656c732f74616b657b2263757272656e637953686f72744e616d65223a2255534454222c227472616e73706f727450726f746f636f6c223a227472633230222c22666f726569676e4964223a22757365722d303037227d
  3. Secuencia de bytes (HEX) de apiSecretKey:

    293c5b8400505a08471e478e1540141486fcbbd4b6aebd27564946effc7d12d5ca76af6c10b8617d86ddb132f54062b90d6b23af1cd37803f665ffe1ae4bf764adb5d1f994fe5777d1abd71338c709e068c585cf0a3b93116b648851c439f05cccbf39ac5b0b7aed1f19954598e9a78a19cc4d56e48e681c4aa7d859ca4a2981
  4. X-Processing-Signature (HEX):

    99e42b99bf324e740adcf253c466a41bbd62515a55c60c5c8f9077d07ed73e16a83f47a2455d8944165b824e6fc22a94bf9b2719c29aa68bac2271ed9ff46876
  5. X-Processing-Signature (base64):

    meQrmb8yTnQK3PJTxGakG71iUVpVxgxcj5B30H7XPhaoP0eiRV2JRBZbgk5vwiqUv5snGcKapousInHtn/Rodg==