Для интеграции с CRM, сайтом или внутренней программой предусмотрены HTTP-интерфейсы GET, XML и JSON. Внешнее приложение может формировать сообщения автоматически и получать сведения об их обработке. Пользователю не нужно переносить каждое уведомление из своей программы в форму кабинета.
В ходе обновлений появились дополнительные данные статусов, авторизация с токеном в предусмотренных запросах, операции с отправителями и получение статистики. Набор команд зависит от шлюза: одинаковый формат данных не означает, что все интерфейсы поддерживают совершенно одинаковые действия.
При такой интеграции SMS-сервиса с приложением полезно сначала выбрать нужную операцию и её контракт. Затем можно согласовать авторизацию, поля запроса и то, как программа сохранит результат.
Я расширил исходный код HTTP-шлюза SMS-сервиса, сохраняя общую обработку отправки. Полученный идентификатор помогает связать уведомление с его дальнейшим статусом во внешней системе.
Успешный ответ на отправку и доставка различаются. Приложению также необходимо учитывать повторы: если ответ потерялся, новый запрос может создать ещё одно сообщение. Поэтому полный тест интеграции включает авторизацию, приём запроса, получение состояния и поведение при ошибке, а не только один удачный вызов.