Баг в 1С

В стандартном модуле SMS.RU, разработанном компанией 1С, обнаружен баг, приводящий к зацикливанию запросов на отправку и проверку статусов СМС-сообщений.

По нашим наблюдениям, модуль некорректно обрабатывает ответы нашего сервера. Если мы не передаем статус "отправлено" при отправке сообщения (например, из-за невалидного номера, отсутствия согласованного отправителя или любой другой неисправимой ошибки), 1С продолжает бесконечно пытаться отправить сообщение.

Аналогичная ситуация возникает при проверке статусов сообщений. Если мы не возвращаем статус "доставлено" (например, когда срок доставки сообщения истек или оператор отклонил сообщение), 1С бесконечно повторяет попытки проверки статуса.

Это создает избыточную нагрузку как на наши серверы, так и на серверы клиентов, использующих 1С.

Наше решение

Если мы определяем, что запрос поступил из 1С (заголовок User-Agent содержит строку "1C+"), мы всегда передаем статус "отправлено", независимо от наличия ошибки. В случае невозможности реальной отправки мы устанавливаем значение поля "sms_id" как "ERROR-1C-BUG" и дополнительно передаем поля "real_status" и "real_status_text", содержащие информацию об ошибке.

На все запросы проверки статуса сообщения из 1С мы возвращаем статус "Доставлено".

Как обойти

Если вы разрабатываете собственный модуль, соответствующий нашей документации, вы можете отключить данный патч, изменив заголовок User-Agent при запросах к нашему серверу.

Last update: 2024-06-24 19:46

Бесплатный номер по России  +7 (800) 222-60-95