Подпись HTTP-запросов

Авторизация с помощью секретного токена и подписи

При обращении к API Платформы через HTTP предпочтительным способом авторизации является секретный токен.

Создавать новые токены можно в разделе "Настройки" личного кабинета:


Для авторизации используется цифровая подпись, формирующаяся по следующему алгоритму: md5(params + token)
Где token — Ваш секретный токен, а params — конкатенация пар "имя=значение", отсортированных в алфавитном порядке по имени, где "имя" — это параметр запроса, а "значение" — его значение. В расчете учитываются все параметры запроса, кроме sign.

Например, если существует активный секретный токен 2LsWvGkYYOjyPw3GWbp5L, и в запросе участвуют следующие параметры:

Параметр Значение
login user
sender terasms.ru
target 71234567890
message hello
подпись должна быть сформирована следующим образом: md5("login=usermessage=hellosender=terasms.rutarget=712345678902LsWvGkYYOjyPw3GWbp5L")

Обратите внимание, что все параметры запроса при формировании подписи отсортированы в алфавитном порядке по имени. Запрос в таком случае будет выглядеть следующим образом:
https://auth.terasms.ru/outbox/send?login=user&sender=terasms.ru&target=71234567890&message=hello&sign=10bf3c359f70f3d38e8162beae1d6c87

При формировании запроса в форматах JSON и XML логика формирования подписи аналогична.

В случае если тело запроса имеет несколько уровней вложенности, т.е. значения параметров сами являются массивами или ассоциативными массивами, то имена (ключи) для таких параметров игнорируются, а из значения, которое является вложенным массивом, строка для конкатенации формируется по изначальному алгоритму (рекурсивно).

Примеры формирования подписи JSON-запроса

Запрос:

> POST https://auth.terasms.ru/outbox/getstatus/json
{
    "login": "user",
    "message_ids": [11222, 11223]
}
Токен: 2LsWvGkYYOjyPw3GWbp5L

Формирование подписи: md5("login=user0=112221=112232LsWvGkYYOjyPw3GWbp5L") Обратите внимание, что имя параметра message_ids в формировании подписи не участвует.

Сформированный запрос:

> POST https://auth.terasms.ru/outbox/getstatus/json
{
    "login": "user",
    "message_ids": [11222, 11223],
    "sign": "803cbc83bf0112e8d942909c18635d40"
}

Запрос:

> POST https://auth.terasms.ru/outbox/msend_json
{
	"login": "user",
	"smsPackage": [
		{
			"target": 78002223344,
			"sender": "Info",
			"message": "foo"
		},
		{
			"target": 78002223345,
			"sender": "Info",
			"message": "bar"
		}
	]
}
Токен: 2LsWvGkYYOjyPw3GWbp5L

Формирование подписи: md5("login=usermessage=foosender=Infotarget=78002223344message=barsender=Infotarget=780022233452LsWvGkYYOjyPw3GWbp5L") Обратите внимание, что имя параметра smsPackage в формировании подписи не участвует.

Сформированный запрос:

> POST https://auth.terasms.ru/outbox/msend_json
{
	"login": "user",
	"smsPackage": [
		{
			"target": 78002223344,
			"sender": "Info",
			"message": "foo"
		},
		{
			"target": 78002223345,
			"sender": "Info",
			"message": "bar"
		}
	],
	"sign": "4f94d78b216031eb6797bdd35f2daff1"
}

Авторизация с помощью логина и пароля

При формировании запроса Вы также можете использовать Ваш логин и пароль на Платформе. Логин передаётся в виде параметра login, пароль — в виде параметра password.

Пример запроса: https://auth.terasms.ru/outbox/send?login=user&password=secret&sender=terasms.ru&target=71234567890&message=hello

Готовы начать работу?
Если остались вопросы, свяжитесь с нами по телефону: 8 800 555-94-12