Каталог решений - БСП: добавление нового провайдера SMS

БСП: добавление нового провайдера SMS

БСП: добавление нового провайдера SMS

В наличии

Небольшая статья о том, как добавить нового провайдера SMS на примере конфигурации «Управление торговлей 11», используя библиотеку стандартных подсистем (БСП)

Категория:

Описание

Перед началом добавления нового провайдера услуг нужно убедиться в работоспособности его API. Поможет в этом замечательный инструмент-расширение к браузеру Google Chrome click.

Будем считать, что все тесты прошли успешно. Во-первых, нужно разрешить возможность редактирования общего модуля ОтправкаСМСПереопределяемый и перечисления ПровайдерыСМС:


Во-вторых, добавить в перечисление ПровайдерыСМС название своего провайдера: 


В-третьих, выполнить настройку провайдера SMS, указать логин и пароль в базе данных. Вкладка «Администрирование»:


Далее нужно определить описание взаимодействия с API в общем модуле ОтправкаСМСПереопределяемый. Нужно переопределить 3 пустых процедуры:

// Проверяет правильность сохраненных настроек отправки SMS.
Процедура ПриПроверкеНастроекОтправкиSMS(НастройкиОтправкиSMS, Отказ)

// Отправляет SMS через настроенного поставщика услуги, возвращает идентификатор сообщения.
Процедура ОтправитьSMS(ПараметрыОтправки, Результат)

// Запрашивает статус доставки SMS у поставщика услуг.
Процедура СтатусДоставки(ИдентификаторСообщения, Провайдер, Логин, Пароль, Результат)

Важно, провайдер alphasms использует для коммуникации POST-запросы, на входе и выходе xml-файлы, у других провайдеров может быть все иначе (GET, POST, etc. и другие форматы).


Код процедуры ПриПроверкеНастроекОтправкиSMS у меня получился такой:

Процедура ПриПроверкеНастроекОтправкиSMS(НастройкиОтправкиSMS, Отказ) Экспорт

    Перем Провайдер, Логин, Пароль;

    Если ТипЗнч(НастройкиОтправкиSMS) = Тип("Структура") Тогда

        Если НастройкиОтправкиSMS.Свойство("Логин", Логин)
          И  НастройкиОтправкиSMS.Свойство("Пароль", Пароль)
          И  НастройкиОтправкиSMS.Свойство("Провайдер", Провайдер)Тогда

            Если Логин = Неопределено ИЛИ ПустаяСтрока(Логин) Тогда
                Отказ = Истина;
            КонецЕсли;

            Если Пароль = Неопределено ИЛИ ПустаяСтрока(Пароль) Тогда
                Отказ = Истина;
            КонецЕсли;

            Если Провайдер = Неопределено ИЛИ Провайдер = Перечисления.ПровайдерыSMS.ПустаяСсылка() Тогда
                Отказ = Истина;
            КонецЕсли;

        Иначе
            Отказ = Истина;
        КонецЕсли;

    Иначе
        Отказ = Истина;
    КонецЕсли;

КонецПроцедуры

Код отправки SMS у меня базировался на API провайдера:

  • тело POST запроса в кодировке «UTF-8»:

has been added to your cart:
Оформление заказа