0 800 219 777

Отправка смс из 1C по протоколу SMPP v3.4

Отправка смс из 1C по протоколу SMPP v3.4

В жизни всякое бывает и, возможно, кому понадобится отправлять много СМС из 1C.

Главное, не забывать, что работа SMPP протокола подразумевает под собой поддержание постоянного подключения к поставщику.

В описании пойдет речь о подключении программы семейства «1C: Предприятие 8x».

Для реализации проекта, нам понадобится сторонний компонент – ActiveX: Winsock.

Для установки данного компонента достаточно просто скачать и установить его с официального сайта — http://www.microsoft.com/ru-ru/softmicrosoft/VisualStudioExpress.aspx

После установки – размещаем на форме компонент Winsock.

Отправка смс из 1C по протоколу SMPP v3.4

Добавление компонента

 

После установки – проверяем и настраиваем (при необходимости методы).

Отправка смс из 1C по протоколу SMPP v3.4

Методы Winsock

 

Если описать вкратце метод поднятия SMPP сессии, то этот процесс делится на два этапа: поднятие TCP подключения и поднятие SMPP подключения.

Сперва необходимо подключить по TCP протоколу (т. е. поднять / создать сокет соединение).

Процедура Иницилизация() ЭкспортмWinSocketActiveX = ПолучитьФорму(«Форма»).ЭлементыФормы.WinSocket;//иницилизация настроек для подключениямWinSocketActiveX.RemotePort = 2775;мWinSocketActiveX.RemoteHost = «smsc.smppc.com.ua»;ВыполнитьПодключение();КонецПроцедуры // Иницилизация()Процедура ВыполнитьПодключение()Если  мWinSocketActiveX.State = 0 ТогдамWinSocketActiveX.Connect();КонецЕсли;КонецПроцедуры

 

После успешного соединение с сервером, необходимо отправить команду BIND_TRANSMITTER или BIND_TRANSCEIVER (в зависимости от выбранного метода подключения). Если не отправить команду – то соединение оборвется.

Поэтому после проверки отправляем PDU пакет — (Protocol Data Units (Bind_Transceiver).







 

Для обработки ответа (ответного PDU пакета) необходимо использовать многомерный массив 1C COMSafeArray.















 

Клиент обязан отвечать на все пакеты, отправляемые сервером, в течение 10 – 60 секунд (в зависимости от требований поставщика) – resp пакетами. Если игнорировать запросы и не отвечать – соединение будет разорвано.

Отдельно нужно ответить команде ENQUIRE_LINK, которая используется для проверки работоспособности соединения. Отвечать на нее обязательно, если нужно чтобы СМС продолжали ходить.

Методом DataArrival() принимаем и обрабатываем входящие пакеты:




 

 

 

После того как клиент и сервер успешно обменялись пакетами ENQUIRE_LINK, можно отправить текст смс-сообщения.



 

 

Несмотря на то, что SMPP подключение подразумевает под собой постоянное соединение, можно, конечно, и разрывать соединение (правильно это делать через команду UNBIND), но только, если в течение нескольких часов у Вас не предвидится отправка СМС. Иначе лучше оставлять соединение рабочим.

 

Источник – www.1c83.ru

Отправка смс из 1C по протоколу SMPP v3.4
5 (100%) 1 vote
Добавить комментарий