FlashingCall (Voice Code)#
При передаче сообщения FlashingCall (Voice Code) через HTTP-интеграцию действуют следующие ограничения:
текст сообщения – до 2000 символов;
текст должен обязательно содержать четырёх-, либо шестизначный цифровой код, используемый для звонка абоненту (в противном случае запрос будет отклонён с ошибкой 400, Invalid request, Flashing Call text should contain a 4(6)-digit code);
время жизни FlashingCall-сообщений – от 1 до 5 минут включительно.
Для отправки Voice Code необходимо указать тип сообщения FlashingCall и передать запрос, содержащий код. Указанный код (без сопутствующего текста) будет передан поставщику, который вставит его в текст шаблона сообщения. Результатом такого запроса будет звонок на телефон абонента. Когда абонент снимет трубку, он услышит голосовое сообщение, которое будет содержать код из четырёх цифр. Для подключения данной услуги необходимо обратиться в Службу технической поддержки и согласовать текст шаблона голосового сообщения.
Запрос на отправку сообщений FlashingCall (Voice Code)#
В HTTP API допустимы POST и GET запросы.
Примеры запросов#
POST-запрос с сообщением на латинице “test“ в простом текстовом формате.
{
POST /login HTTP/1.1
Host: 10.10.10.10:9080
Content-Type: application/x-www-form-urlencoded;charset=utf-8
Content-Length: 58
serviceId=login&pass=123&clientId=79161234567&message=test
}
POST-запрос с текстом сообщения на кириллице “тест“ в URL-формате.
{
POST /login HTTP/1.1
Host: 10.241.0.194:9080
Content-Type: application/x-www-form-urlencoded;charset=utf-8
Content-Length: 78
serviceId=login&pass=123&clientId=79161234567&message=%D1%82%D0%B5%D1%81%D1%82
}
GET-запрос с сообщением на латинице “test“ в простом текстовом формате.
{
http://partner.ru/login?clientId=79161234567&message=test&pass=123&serviceId=login
}
GET-запрос с текстом сообщения на кириллице “тест“ в URL-формате.
{
http://partner.ru/login?clientId=79161234567&message=%D1%82%D0%B5%D1%81%D1%82&pass=123&serviceId=login
}
Параметры запросов#
Параметры применимы для POST и GET запросов.
В таблице обязательные параметры выделены жирным шрифтом.
Параметр |
Тип |
Описание |
---|---|---|
clientId |
string |
Номер телефона абонента, до 25 символов.
Примеры: 79036550550, +79036550550, 8-903-655-05-50, 89036550550.
|
message |
string |
Сообщение для отправки абоненту.
Партнёр должен передать в данном параметре:
Максимально допустимая длина сообщения для FlashingCall (Voice Code):
2000 символов.
Предупреждение При отправке FlashingCall сообщений следует учесть, что текст сообщения
обязательно должен содержать четырёх-, либо шестизначный цифровой код,
который используется для звонка абоненту. В противном случае будет
возвращено сообщение c ошибкой: |
serviceId |
string |
Идентификатор сервиса (логин), от имени которого происходит отправка сообщения. Логин serviceId заводится Сервис-провайдером при подключении сервиса и сообщается Партнёру. |
pass |
string |
Пароль для авторизации в сервисе. Пароль заводится Сервис-провайдером при подключении сервиса и сообщается Партнёру. |
ptag |
string |
Идентификатор сообщения в системе Партнёра. Может содержать от одного до 50 символов. Допустимые символы: 0…9a…zA…Z- Это может быть любой идентификатор в системе Партнёра. Примечание Например, уникальный идентификатор сообщения или идентификатор подразделения, инициирующего запрос на отправку. В отличие от параметра partnerMsgId, который нужен для контроля повторных отправок и дублирования, Сервис-провайдер не контролирует значения, переданные в параметре ptag (проверяется только соответствие формату). Сервис-провайдер опционально возвращает Партнёру данный идентификатор в рамках запроса на получение статуса доставки сообщения (этот функционал подробно описан в разделе «Сервис получения статусов доставки сообщений»). |
sending_time |
string |
Локальное время отправки сообщения абоненту.
Задается в формате hh_hh, где два значения часа задают временной
промежуток, в который должно быть отправлено сообщение.
Предупреждение Если параметр указан, то его значение не может быть пустым. Примечание Например, при значении параметра sending_time=10_20, сообщение будет отправлено в период с 10:00 до 20:00 по местному времени в часовом поясе абонента. Часовой пояс абонента определяется не по фактическому местоположению
абонента.
Если Партнёр не передает параметр time_zone, то часовой пояс абонента
определяется по номеру телефона.
Если Партнёр передает в параметре time_zone часовой пояс, то сообщение будет
отправлено абоненту по местному времени этого часового пояса.
|
time_zone |
string |
Часовой пояс абонента. Задается в формате ±hh:mm. Подробнее о формате см. ISO 8601. Если Партнёр передает в этом параметре часовой пояс, то сообщение будет отправлено абоненту по местному времени этого часового пояса, иначе часовой пояс абонента определяется по номеру телефона абонента. Примечание Абонент с хабаровским номером находится в Москве. Возможны следующие варианты отправки:
Для нулевой зоны обязательно указание знака, неважно «+» или «–«.
Знак «+» при кодировании URL преобразуется в «%2B».
Например, часовой пояс +04:00 передается так time_zone= %2B04:00.
|
source |
string |
Имя отправителя. Сообщение абоненту будет отправлено с сервисного имени, указанного в данном параметре. Данный параметр не является обязательным. Если параметр отсутствует в запросе, то сообщение будет отправлено абоненту с имени по умолчанию (настройка на стороне Сервис-провайдера). Важно Использование данного параметра недоступно для Партнёра по умолчанию. Функционал может быть включен после согласования с Сервис-провайдером. В этом случае для Партнёра настраивается список разрешенных имен отправителей, либо включается функционал динамической подписи. |
output |
string |
Формат ответа на запрос. Если output=xml, то ответ на запрос будет сформирован в виде XML (подробнее в разделе «Ответ в формате XML»). Во всех остальных случаях (параметр не задан или имеет другое значение) – используется формат по умолчанию: plain-текст (подробнее в разделе «Ответ на запрос»). |
partnerMsgId |
string |
Уникальный идентификатор сообщения в системе Партнёра. Допустимая длина: от одного до 50 символов. Данный параметр используется для контроля повторных отправок и дублирования. Партнёр может отправить запрос на отправку сообщения с одним и тем же partnerMsgId несколько раз. При этом:
Сервис-провайдер опционально возвращает Партнёру данный идентификатор в рамках запроса на получение статуса доставки сообщения (этот функционал подробно описан в разделе «Сервис получения статусов доставки сообщений»). Использование данного параметра недоступно по умолчанию. Подключение данного функционала нужно согласовать со своим курирующим менеджером. |
Ответ на запрос#
Примечание
Сервис-провайдер отправляет сообщения абонентам только при успешной обработке запроса.
Ответ при успешной отправке запроса#
На успешный запрос Сервис-провайдер возвращает Партнёру:
HTTP-код «200 OK»;
идентификатор сообщения в системе Сервис-провайдера.
{
OK
4095284974
}
Ответный код |
Описание |
Возможные действия Партнера |
---|---|---|
200 |
Успешная обработка запроса.
В теле ответа передаётся идентификатор, присвоенный
сообщению Сервис-провайдером.
Идентификатор представляет собой 64-битное целое
положительное число.
|
Штатная работа с сервисом. |
Ошибки при отправке запроса#
При передаче ошибочного запроса в теле ответа может возвращаться короткое текстовое сообщение об ошибке.
Пример ответа в случае возникновения ошибки неверного сочетания serviceId/pass:
{
Invalid password
}
Ответный код |
Описание |
Возможные действия Партнера |
---|---|---|
400 |
Отсутствуют обязательные параметры или они заданы некорректно. Например, не передан параметр message (там, где он необходим). |
Повторить запрос с правильным сочетанием параметров и их корректными значениями. |
401 |
Передано неверное сочетание параметров serviceId и pass. |
Повторить запрос с верными значениями параметров serviceId и pass. |
402 |
Исчерпан остаток оплаченных сообщений (для Партнёров, работающих по предоплате). |
Для возобновления отправки сообщений необходимо внести предоплату и обратиться к вашему курирующему менеджеру. Партнёр не должен повторять запрос. |
403 |
Сервис с переданным serviceId отсутствует или не активен |
Следует обратиться к своему курирующему менеджеру. Партнёр не должен повторять запрос. |
406 |
Невозможно послать сообщение абоненту с переданным clientId |
Партнёр не должен повторять запрос. |
408 |
Превышение допустимой скорости отправки сообщений. Примечание Для сервиса Партнёра установлена допустимая скорость 10 запросов в секунду. Партнёр отправил 12 запросов в секунду. Первые 10 запросов будут успешно обработаны: в ответ на эти запросы Сервис-провайдер вернет Партнёру статус 200 и отправит сообщения абонентам. В ответ на последние 2 запроса Сервис-провайдер вернет Партнёру статус 408 и не будет отправлять сообщения абонентам. |
Партнёр может повторить запрос, не превышая допустимой скорости. |
409 |
Запрещена отправка дубликатов. Примечание Для сервиса Партнёра включен функционал блокировки дубликатов. Партнёр отправил в течении суток три запроса для отправки сообщения на один номер с одинаковым текстом. Первый запрос будет успешно обработан и сообщение будет отправлено абоненту. В ответ на последние два запроса Сервис-провайдер вернет Партнёру статус 409 и не будет отправлять эти два сообщения абоненту. Функционал блокировки дубликатов по умолчанию отключен для Партнёра. Функционал может быть включен по просьбе Партнёра. Также Сервис-провайдер может включить функционал блокировки дубликатов для Партнёра при необходимости: например, в ответ на жалобы абонентов. |
Партнёр не должен повторять запрос. При необходимости отправки дубликата сообщения, Партнёр может обратиться в службу техподдержки Сервис-провайдера, предоставив наиболее полную информацию об условиях возникновения данной ситуации. |
414 |
Превышение допустимой длины текста сообщения, переданного в параметре message. |
Партнёр может повторить запрос, сократив текст сообщения до допустимой длины. |
500 |
Внутренняя ошибка сервера. Технические проблемы на стороне Сервис-провайдера. |
При получении статуса 500 или при истечении тайм-аута ожидания ответа, Партнёр должен выдержать паузу минимум 1 минуту. По истечении паузы Партнёр может повторить запрос. При получении статуса 500 более 10 раз необходимо прекратить передачу запроса. После чего передать в службу техподдержки Сервис-провайдера наиболее полную информацию б условиях возникновения данной ошибки для дальнейшего анализа. |
503 |
Запрос в обработке. Ошибка может возникнуть, если Партнёр практически одновременно передает несколько запросов с одним и тем же значением параметра partnerMsgId. Пока не обработан первый запрос на следующие запросы с тем же partnerMsgId Сервис-провайдер вернет Партнёру статус 503. |
Партнёр должен выдержать паузу и подождать ответ на первый запрос с переданным значением параметра partnerMsgId. Партнёр может повторить запрос, если не получит ответ на первый запрос. |
Ответ в формате XML#
200 – запрос успешно обработан;
500 – внутренняя ошибка сервера, технические проблемы на стороне Сервис-провайдера.
Примеры ответов#
{
<?xml version="1.0" encoding="utf-8"?>
<response>
<code>200</code>
<text>OK</text>
<payload>
<id>4095284976</id>
</payload>
</response>
}
Пример ответа в формате XML при ошибочной отправке запроса: неверное сочетание serviceId / pass.
{
<?xml version="1.0" encoding="utf-8"?>
<response>
<code>401</code>
<text>Invalid password</text>
</response>
}
При получении статуса 500 или при истечении тайм-аута ожидания ответа, Партнёр должен выдержать паузу минимум 1 минуту. По истечении паузы Партнёр может повторить запрос.
Примечание
При получении статуса 500 более 10 раз необходимо прекратить передачу запроса. После чего передать в службу техподдержки Сервис-провайдера наиболее полную информацию об условиях возникновения данной ошибки для дальнейшего анализа.
В таблице обязательные параметры выделены жирным шрифтом.
Наименование |
Описание |
Примечание |
---|---|---|
xml version |
Номер версии XML. |
Содержится в прологе XML-документа. |
encoding |
Кодировка. |
Содержится в прологе XML-документа. |
response |
Корневой элемент, содержит элементы code, text, payload. |
|
code |
Код ответа (значения соответствуют HTTP-кодам для ответов с типом text/plain). |
Подробное описание этих кодов приведено выше, в разделе “Ответ на запрос“. |
text |
Дополнительная краткая текстовая информация об ответе. |
Может содержать информацию об ошибке. |
payload |
Информация о сообщении, содержит элемент id. |
Передаются только в случае успешного выполнения запроса (при значении code=200). |
id |
Идентификатор, присвоенный сообщению Сервис-провайдером. Идентификатор представляет собой 64-разрядное целое положительное число. |