| Ответ сервера и коды ошибокСервер отправляет ответ в виде строки:
Если произошла ошибка, то ответ будет одним из следующих:
При fmt = 0:
- ERROR = N (описание) – для ошибок 1,2,4,5,9;
- ERROR = N (описание), ID - <id сообщения> – для ошибок 3,6,7,8.
При fmt = 1:
- 0,-N – для ошибок 1,2,4,5,9;
- <id сообщения>,-N – для ошибок 3,6,7,8.
При fmt = 2:
- Для ошибок 1,2,4,5,9:
<result>
<error>описание</error>
<error_code>N</error_code>
</result> |
- Для ошибок 3,6,7,8:
<result>
<error>описание</error>
<error_code>N</error_code>
<id>id сообщения</id>
</result> |
При fmt = 3:
- Для ошибок 1,2,4,5,9:
{
"error": "описание",
"error_code": N
} |
- Для ошибок 3,6,7,8:
{
"error": "описание",
"error_code": N,
"id": <id сообщения>
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль.
|
---|
3 | Недостаточно средств на счете Клиента.
|
---|
4 | IP-адрес временно заблокирован из-за частых ошибок в запросах. Подробнее
|
---|
5 | Неверный формат даты.
|
---|
6 | Сообщение запрещено (по тексту или по имени отправителя).
|
---|
7 | Неверный формат номера телефона.
|
---|
8 | Сообщение на указанный номер не может быть доставлено.
|
---|
9 | Отправка более одного одинакового запроса на передачу SMS-сообщения
либо более пяти одинаковых запросов на получение стоимости сообщения в течение минуты.
Данная ошибка возникает также при попытке отправки более 15 любых запросов одновременно.
|
---|
В случае успешной обработки запроса возвращается строка следующего вида:
- при cost = 0 и fmt = 0: OK - <n> SMS, ID - <id>
- при cost = 1 и fmt = 0: <cost> (<n> SMS)
- при cost = 2 и fmt = 0: OK - <n> SMS, ID - <id>, COST - <cost>
- при cost = 3 и fmt = 0: OK - <n> SMS, ID - <id>, COST - <cost>, BALANCE - <balance>
- при cost = 0 и fmt = 1: <id>,<n>
- при cost = 1 и fmt = 1: <cost>,<n>
- при cost = 2 и fmt = 1: <id>,<n>,<cost>
- при cost = 3 и fmt = 1: <id>,<n>,<cost>,<balance>
- при cost = 0 и fmt = 2:
<result>
<id>id</id>
<cnt>n</cnt>
</result> |
- при cost = 1 и fmt = 2:
<result>
<cost>cost</cost>
<cnt>n</cnt>
</result> |
- при cost = 2 и fmt = 2:
<result>
<id>id</id>
<cnt>n</cnt>
<cost>cost</cost>
</result> |
- при cost = 3 и fmt = 2:
<result>
<id>id</id>
<cnt>n</cnt>
<cost>cost</cost>
<balance>balance</balance>
</result> |
- при cost = 0 и fmt = 3:
{
"id": <id>,
"cnt": <n>
} |
- при cost = 1 и fmt = 3:
{
"cost": "<cost>",
"cnt": <n>
} |
- при cost = 2 и fmt = 3:
{
"id": <id>,
"cnt": <n>,
"cost": "<cost>"
} |
- при cost = 3 и fmt = 3:
{
"id": <id>,
"cnt": <n>,
"cost": "<cost>",
"balance": "<balance>"
} |
- при op = 1 и fmt = 0 или 1, информация добавляется в конец обычного вывода с новой строки:
<phone>,<mccmnc>,<cost>,<status>,<error>
- при op = 1 и fmt = 2, в ответ добавляется массив:
<phones>
<phone mccmnc="mccmnc" cost="cost" status="status" error="error">phone</phone>
...
</phones> |
- при op = 1 и fmt = 3, в ответ добавляется массив:
"phones": [{
"phone": "<phone>",
"mccmnc": "<mccmnc>",
"cost": "<cost>",
"status": "<status>",
"error": "<error>"
},
...
] |
Где:
<n> – это количество отправленных SMS, вычисляемое как количество SMS в сообщении, умноженное на количество
получателей.
<id> – идентификатор сообщения, переданный Клиентом или назначенный Сервером автоматически.
<cnt> – количество частей (при отправке SMS-сообщения) либо 5-секундных блоков (при голосовом сообщении (звонке)).
<balance> – новый баланс Клиента.
<phone> – номер телефона.
<mccmnc> – числовой код страны абонента плюс числовой код оператора абонента.
<cost> – стоимость SMS-сообщения.
<status> – код статуса SMS-сообщения.
<error> – код ошибки в статусе.
Сервер не принимает более одного одинакового запроса на отправку SMS-сообщений в течение минуты
для защиты от ошибок и зацикливаний в программе на стороне Клиента для того, чтобы снизить нагрузку и не
расходовать средства Клиента, а также не допустить многократной отправки сообщения одному абоненту.
Сервер также блокирует отправку более 50 сообщений одному абоненту, которые были отправлены с перерывом
между сообщениями менее 60-ти секунд, для защиты от флуда и лишнего списания средств со счета Клиента,
так как многие операторы не пропускают большое количество сообщений одному абоненту за короткий промежуток времени.
|