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.
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:
| Encabezado | Valor | Formato | Obligatorio |
|---|---|---|---|
X-Processing-Key | Clave pública de la API obtenida en su cuenta personal | GUID sin guiones ni llaves | Obligatorio |
X-Processing-Timestamp | Marca de tiempo en milisegundos en que se creó y envió la solicitud | Marca de tiempo Unix en milisegundos | Obligatorio |
X-Processing-RecvWindow | Número de milisegundos posteriores a la marca de tiempo durante los cuales la solicitud es válida | Entero | Opcional (5000 ms por defecto) |
X-Processing-Signature | Datos de la solicitud firmados con la clave secreta HMAC-SHA512 | Valor codificado en Base64 | Obligatorio |
Cálculo de la firma X-Processing-Signature
Algoritmo
-
Forme los datos que se van a firmar como una cadena concatenando partes de la solicitud en el siguiente orden:
- Valor del encabezado
X-Processing-Timestamp+ - Valor del encabezado
X-Processing-RecvWindow(si se envía) + - Tipo de método HTTP de la solicitud (
GET,POST, etc.) + - URL relativa de la solicitud (ruta + parámetros de consulta) +
- Cuerpo de la solicitud (si se envía)
- Valor del encabezado
-
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
-
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
| Clave | Valor |
|---|---|
| apiPublicKey | d93b40983c61423c9a84-9956bf1c3549 |
| apiSecretKey | KTxbhABQWghHHkeOFUAUFIb8u9S2rr0nVklG7/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
-
Cadena a firmar:
14998273203506000POST/v1/channels/take{"currencyShortName":"USDT","transportProtocol":"trc20","foreignId":"user-007"} -
Secuencia de bytes (HEX) de la cadena a firmar en UTF-8:
3134393938323733323033353036303030504f53542f76312f6368616e6e656c732f74616b657b2263757272656e637953686f72744e616d65223a2255534454222c227472616e73706f727450726f746f636f6c223a227472633230222c22666f726569676e4964223a22757365722d303037227d -
Secuencia de bytes (HEX) de apiSecretKey:
293c5b8400505a08471e478e1540141486fcbbd4b6aebd27564946effc7d12d5ca76af6c10b8617d86ddb132f54062b90d6b23af1cd37803f665ffe1ae4bf764adb5d1f994fe5777d1abd71338c709e068c585cf0a3b93116b648851c439f05cccbf39ac5b0b7aed1f19954598e9a78a19cc4d56e48e681c4aa7d859ca4a2981 -
X-Processing-Signature (HEX):
99e42b99bf324e740adcf253c466a41bbd62515a55c60c5c8f9077d07ed73e16a83f47a2455d8944165b824e6fc22a94bf9b2719c29aa68bac2271ed9ff46876 -
X-Processing-Signature (base64):
meQrmb8yTnQK3PJTxGakG71iUVpVxgxcj5B30H7XPhaoP0eiRV2JRBZbgk5vwiqUv5snGcKapousInHtn/Rodg==