Подпись запросов
Вам нужно указать свой secret_key, применить шифрование SHA256
к вашей полезной нагрузке и преобразовать результат в формат HEX
.
Использование одноразового номера
Вы должны передавать параметр nonce
в теле каждого запроса к этому API. nonce
может быть числом или строкой, каждый запрос должен сопровождаться уникальным значением. В противном случае запрос не будет выполнен.
Мы будем использовать Unix TimeStamp в качестве значения nonce
для отправки запросов в этом документе.
Пример создания подписи запроса NodeJS
NodeJS
Допустим, мы хотим получить курс ETH/USDT
(метод /price-rate
)
1. Формируем тело запроса
const payload = { from: 'ETH', to: 'USDT' };
2. Добавьте nonce
параметр к телу запроса, чтобы избежать дублирования запросов.
Используя временную метку unix в качестве параметра «nonce», мы удовлетворим требованиям использования числа и его увеличения для каждого нового запроса.
payload.nonce = Date.now(); // 1643881172430
3. Приводим тело запроса к формату строки.
const stringPayload = JSON.stringify(payload); // {"из":"ETH","в":"USDT","nonce":1643881172430}
4. Создаем подпись:
Пример с модулем crypto-js
:
const CryptoJS = require("crypto-js");
const sign = CryptoJS.HmacSHA256(stringPayload, __PRIVATE_KEY__).toString(CryptoJS.enc.Hex)
Пример с модулем crypto
:
const crypto = require('crypto');
const sign = crypto.createHmac('SHA256', __PRIVATE_KEY__).update(stringPayload).digest('hex');
5. Отправляем запрос с обязательными заголовками:
const axios = require('axios'); // библиотека для HTTP-запросов
const response = await axios.post(__BASE_URL__ + '/price-rate', stringPayload,
{
headers:
{
'x-api-public-key': __PUBLIC_KEY__,
'x-api-signature': sign
}
});
6. Ответ:
console.log(response); // {"success":true,"response":"2751.51000000"}
Last updated