Подпись запросов
Для авторизации запроса в API необходимо доказать его валидность. Для этого сервер проверяет подпись запроса. Мерчант должен добавить подпись к каждому запросу, где это требуется.
Подпись - это с строка в заголовке X-Auth в которой мерчант зашифровал свои данные с помощью приватного токена.
Рассмотрим создание подписи на примере запроса POST /api/v1/trades/deposit/create:
{
"merchant":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
"order":"ext-123",
"amount_cents":1000,
"amount_currency":"USD",
"type":"nspk",
"cusotmer":"cust-1"
}
Чтобы зашифровать данные запроса Мерчант должен сформировать строку из аттрибутов на основе алфавитного порядка ключей, конкатенировать их с разделителем :: и вычислить HMAC с помощью секретного кода
- Сортируем по алфавитному порядку ключей:
[
"amount_cents":1000,
"amount_currency":"USD",
"cusotmer":"cust-1",
"merchant":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
"order":"ext-123",
"type":"nspk"
]
- Конкатенируем значения
1000::USD::cust-1::3fa85f64-5717-4562-b3fc-2c963f66afa6::ext-123::nspk
- Генерируем подпись c помощью кода
passи алгоритмаsha-256
2aa0d2adf41a08f164312aafd4925e274e5b75bf4a7bcb66e6d520ffdfdd5255
Сервисы для онлайн генерации подписи: