Добрый день!
Пытаюсь реализовать работу с API сайта etxt.ru (
link)
При этом, столкнулся с проблемой генерации подписи к запросам, всё остальное реализовал без проблем.
Текст-описание процесса генерации подписи:
Подпись запроса
Чтобы удостовериться, что запрос отправлен действительно вами, а не злоумышленниками от лица вашего приложения, все запросы к API должны быть подписаны. Результат расчета подписи вы должны передать в параметре sign. Биржа проверит подпись и выполнит запрос только если подпись правильная.
Алгоритм использует отдельный ключ api_pass, который мы настоятельно рекомендуем вам хранить только на ваших серверах и использовать только при запросах с них к серверу Биржи. Данный ключ задается в разделе "Мой профиль/Настройки интерфейса".
sign = md5(params.md5(api_pass.'api-pass'))
Значение params — это конкатенация пар «имя=значение» отсортированных в алфавитом порядке по «имя», где «имя» — это название параметра, передаваемого в функцию API, «значение» — значение параметра. Разделитель в конкатенации не используется. Параметр sign при расчете подписи не учитывается, все остальные параметры запроса должны учитываться при расчете.
Безопасность схемы основывается на том, что api_pass знаете только вы и Биржа. Поэтому никогда не раскрывайте его третьим лицам. Если у вас возникли сомнения в безопасности api_pass, измените его в настройках профиля.
Я же, в свою очередь, делаю так:
$mySign = md5($params.md5($apiPassword.'api-pass'));
Ответ сервера: Подпись не верна.
Подскажите, где я сам дурак, либо какие-то ошибки в описании генерации.