Документация по HTTP API для разработчика

Взаимодействие с API осуществляется по протоколу HTTP или HTTPS, параметры передаются методом GET или POST.
В разделе API личного кабинета добавьте проект который будет использовать API функции.
Все запросы должны содержать параметр project(имя проекта) и параметр sign(подпись) или apikey(рекомендуется использовать sign).
Для формирования подписи sign понадобится API key проекта, посмотреть его можно на странице API личного кабинета.


Формирование параметра sign(подпись)

Параметр sign формируется следующим образом:

  • параметры сортируются по названию, затем их значения суммируются, между значениями ставится символ точка с запятой. В конце добавляется API KEY.
    Пример для запроса с параметрами param2=параметр2&param1=параметр1
    в результате сортировки порядок изменится на param1 param2
    и затем step1 = параметр1 + ';' + параметр2 + ';' + API KEY
  • к полученной на предыдущем шаге строке применяются функции хеширования sha1, а затем md5.
    Пример sign = md5(sha1(step1))

Пример запроса

curl -X GET http://mainsms.ru/api/mainsms/message/send \
  -H 'Accept: application/json'               \
  -F project=mainsms                          \
  -F sender=mainsms.ru                        \
  -F message=test                             \
  -F recipients=89121231234                   \
  -F sign=41b379f61da2e1b8a1f74c7d050e1c42
            

для примера параметр API key = 07349e954831d в таком случае параметр sign будет рассчитан так:

  • Шаг 1: cортируем параметры по имени в алфавитном порядке и суммируем значения в строку через точку с запятой и добавляем в конце API key, в результате получим строку
    step1 = params.sort.join(';') + ';' + apikey
    step1 = "test;mainsms;89121231234;mainsms.ru;07349e954831d"
  • Шаг 2: Применяем к полученной строке sha1
    step2 = sha1(step1)
    step2 = "8f5cd8b1417753ad077905a50c0c957b7c2b830e"
  • Шаг 3: Применяем к полученной строке md5
    sign = md5(step2)
    sign = "207bbf2b0f6aaaacf259464b48d5c207"

Что-то не получается? свяжитесь с нами, мы поможем