Генерация сигнатуры (Api-Sign)
Сигнатура вычисляется по алгоритму HMAC-SHA256. Ключ - ваш API-KEY. Подписывается каноническая JSON-строка тела запроса.
Каноническая форма JSON
Параметры запроса передаются в виде ассоциативного массива. Этот массив сериализуется в JSON-объект с фигурными скобками {}. Для корректной подписи необходимо:
- Отсортировать ключи массива в алфавитном порядке (лексикографически, по возрастанию).
- Сериализовать массив в JSON без пробелов (разделители , и :).
Тело запроса всегда должно быть JSON-объектом (ассоциативным массивом).
Обязательными полями являются:
id - уникальная строка длиной до 130 символов, состоящая только из латинских букв (a-z, A-Z) и цифр (0-9).
Пустых массивов не бывает.
Пример запроса
Исходный ассоциативный массив (не отсортирован):
{"user_id": 42,"id": "a1b2c3d4e5f6g7h8i9j0..."}
Каноническая строка для подписи (после сортировки ключей):
{"id":"a1b2c3d4e5f6g7h8i9j0...","user_id":42}
Алгоритм
- Сгенерируйте уникальную строку id (100 символов, только латинские буквы и цифры).
- Подготовьте объект с параметрами, включив обязательный ключ id.
- Отсортируйте ключи в алфавитном порядке.
- Преобразуйте в JSON-строку без пробелов.
- Вычислите HMAC-SHA256 от этой строки, используя API-KEY.
- Полученный hex-дайджест (в нижнем регистре) поместите в заголовок Api-Sign.