Отправка СМС из 1С через ibatele.com

05.08.13

Интеграция - SMS рассылки

Рассылка СМС из 1С через REST API сервиса ibatele.com. Минимальный код, готовый для внедрения в любую конфигурацию.

Документация (высылается по запросу) указывает на то, что сервис имеет REST API.

Создаем общий модуль, например, ИБАТелеком (сервер)

&НаСервере 
Функция
ПолучитьСессию() Экспорт
    Настройки = ПолучитьНастройки();
    Соединение = Новый HTTPСоединение(Настройки.Сервер, , , , , Истина);
    Запрос = Новый HTTPЗапрос("/User/SessionId?login=" + Настройки.Логин + "&password=" + Настройки.Пароль);
    Ответ = Соединение.Получить(Запрос);
    Сессия = Ответ.ПолучитьТелоКакСтроку();
    Сессия = СтрЗаменить(Сессия, """", "");
 Возврат Сессия;
 
КонецФункции 

&НаСервере 
Функция ПолучитьНастройки()Экспорт 
 Настройки =Новый Структура(); 
 Настройки.Вставить("Сервер","integrationapi.net/rest/"); 
 Настройки.Вставить("Логин","USER"); 
 Настройки.Вставить("Пароль","PASSWORD");
Возврат Настройки;
КонецФункции 

&НаСервере 
Функция ПолучитьБаланс(Сессия)Экспорт 
 Настройки = ПолучитьНастройки(); 
 Соединение =Новый HTTPСоединение(Настройки.Сервер,,,,,Истина); 
 Запрос =Новый HTTPЗапрос("/User/Balance?sessionId="+ Сессия); 
 Ответ = Соединение.Получить(Запрос);
Возврат Ответ.ПолучитьТелоКакСтроку();
КонецФункции 

&НаСервере 
Функция ОтправитьСМС(Сессия, Получатель, Отправитель, Текст)Экспорт 
 Настройки = ПолучитьНастройки(); 
 Соединение =Новый HTTPСоединение(Настройки.Сервер,,,,,Истина); 
 Запрос =Новый HTTPЗапрос("/Sms/Send?sessionId="+ Сессия +"&sourceAddress="+ Отправитель +"&destinationAddress="+ Получатель +"&data="+Текст); 
 Заголовки =Новый Соответствие(); 
 Ответ = Соединение.ОтправитьДляОбработки(Запрос);
 Возврат Ответ.ПолучитьТелоКакСтроку();
КонецФункции 


Функция ПолучитьНастройки() формирует Структуру с настройками. В случае выноса настроек из кода в Регистр Сведений или Константы, необходимо переписать эту функцию.


Пример вызова функций

 

&НаСервере 
Процедура Тест()
    Сессия = ИБАТелеком.ПолучитьСессию();
    КодСообщения = ИБАТелеком.ОтправитьСМС(Сессия, “79501234567”, “SMSTEST”, “1C наше все!”);
    Баланс = ИБАТелеком.ПолучитьБаланс(Сессия);
КонецПроцедуры 


После регистрации доступен только один отправитель - SMSTEST


С виду все легко и просто. На 1С ничего не знает про SSL-сертификат сервиса integrationapi.net, что вызывает ошибку: "Peer certificate cannot be authenticated with known CA certificates”. 

Для корректной работы необходимо в "C:\Program Files (x86)\1cv82\8.2.18.82\bin\cacert.pem” добавить нижеуказанный текст. Путь файла может меняться в зависимости версии ОС и 1С. В случае работы с 1С-Сервером файл необходимо искать на сервере.


Certificate:

   Data:

       Version: 3 (0x2)

       Serial Number:

           34:4e:d5:57:20:d5:ed:ec:49:f4:2f:ce:37:db:2b:6d

   Signature Algorithm: sha1WithRSAEncryption

       Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA

       Validity

           Not Before: Nov 17 00:00:00 2006 GMT

           Not After : Jul 16 23:59:59 2036 GMT

       Subject: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA

       Subject Public Key Info:

           Public Key Algorithm: rsaEncryption

               Public-Key: (2048 bit)

               Modulus:

                   00:ac:a0:f0:fb:80:59:d4:9c:c7:a4:cf:9d:a1:59:

                   73:09:10:45:0c:0d:2c:6e:68:f1:6c:5b:48:68:49:

                   59:37:fc:0b:33:19:c2:77:7f:cc:10:2d:95:34:1c:

                   e6:eb:4d:09:a7:1c:d2:b8:c9:97:36:02:b7:89:d4:

                   24:5f:06:c0:cc:44:94:94:8d:02:62:6f:eb:5a:dd:

                   11:8d:28:9a:5c:84:90:10:7a:0d:bd:74:66:2f:6a:

                   38:a0:e2:d5:54:44:eb:1d:07:9f:07:ba:6f:ee:e9:

                   fd:4e:0b:29:f5:3e:84:a0:01:f1:9c:ab:f8:1c:7e:

                   89:a4:e8:a1:d8:71:65:0d:a3:51:7b:ee:bc:d2:22:

                   60:0d:b9:5b:9d:df:ba:fc:51:5b:0b:af:98:b2:e9:

                   2e:e9:04:e8:62:87:de:2b:c8:d7:4e:c1:4c:64:1e:

                   dd:cf:87:58:ba:4a:4f:ca:68:07:1d:1c:9d:4a:c6:

                   d5:2f:91:cc:7c:71:72:1c:c5:c0:67:eb:32:fd:c9:

                   92:5c:94:da:85:c0:9b:bf:53:7d:2b:09:f4:8c:9d:

                   91:1f:97:6a:52:cb:de:09:36:a4:77:d8:7b:87:50:

                   44:d5:3e:6e:29:69:fb:39:49:26:1e:09:a5:80:7b:

                   40:2d:eb:e8:27:85:c9:fe:61:fd:7e:e6:7c:97:1d:

                   d5:9d

               Exponent: 65537 (0x10001)

       X509v3 extensions:

           X509v3 Basic Constraints: critical

               CA:TRUE

           X509v3 Key Usage: critical

               Certificate Sign, CRL Sign

           X509v3 Subject Key Identifier:

               7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50

   Signature Algorithm: sha1WithRSAEncryption

        79:11:c0:4b:b3:91:b6:fc:f0:e9:67:d4:0d:6e:45:be:55:e8:

        93:d2:ce:03:3f:ed:da:25:b0:1d:57:cb:1e:3a:76:a0:4c:ec:

        50:76:e8:64:72:0c:a4:a9:f1:b8:8b:d6:d6:87:84:bb:32:e5:

        41:11:c0:77:d9:b3:60:9d:eb:1b:d5:d1:6e:44:44:a9:a6:01:

        ec:55:62:1d:77:b8:5c:8e:48:49:7c:9c:3b:57:11:ac:ad:73:

        37:8e:2f:78:5c:90:68:47:d9:60:60:e6:fc:07:3d:22:20:17:

        c4:f7:16:e9:c4:d8:72:f9:c8:73:7c:df:16:2f:15:a9:3e:fd:

        6a:27:b6:a1:eb:5a:ba:98:1f:d5:e3:4d:64:0a:9d:13:c8:61:

        ba:f5:39:1c:87:ba:b8:bd:7b:22:7f:f6:fe:ac:40:79:e5:ac:

        10:6f:3d:8f:1b:79:76:8b:c4:37:b3:21:18:84:e5:36:00:eb:

        63:20:99:b9:e9:fe:33:04:bb:41:c8:c1:02:f9:44:63:20:9e:

        81:ce:42:d3:d6:3f:2c:76:d3:63:9c:59:dd:8f:a6:e1:0e:a0:

        2e:41:f7:2e:95:47:cf:bc:fd:33:f3:f6:0b:61:7e:7e:91:2b:

        81:47:c2:27:30:ee:a7:10:5d:37:8f:5c:39:2b:e4:04:f0:7b:

        8d:56:8c:68

MD5 Fingerprint=8C:CA:DC:0B:22:CE:F5:BE:72:AC:41:1A:11:A8:D8:12

-----BEGIN CERTIFICATE-----

MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB

qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf

Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw

MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV

BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw

NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j

LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG

A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl

IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG

SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs

W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta

3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk

6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6

Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J

NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA

MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP

r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU

DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz

YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX

xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2

/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/

LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7

jVaMaA==

-----END CERTIFICATE-----

 

Сертификат действует до июля 2034 года, поэтому ниже рецепт по самостоятельному получению fingerprint сертификата с сайта.

- Заходим на https://integrationapi.net.Что отобразится на странице - не важно, главное что бы в начале урла был значек защищенного соединения.

- Далее в каждом браузере по-разному. Но необходимо “открыть” этот сертификат. Например в Хроме клик на замочке, далее закладка “соединение” и “информация сертификата”.

- В просмотре информации нажимает смотрим на закладку “путь сертификации” где выбираем самый верхний в дереве сертификат thawte.

- Этот сертификат необходимо экспортировать в формат DER (состав - копировать в файл).

- Далее с помощью openssl (под винду  http://slproweb.com/products/Win32OpenSSL.html)

openssl x509 -inform der -in filename.cer -text -fingerprint -md5 >fp.pem

- В  результате в файле fp.pem будет заветный сертификат, который и необходимо скопировать cacert.pem


Решение не оптимальное, но рабочее. Для внедрения в продакш крайне желательно:

- ввести кеширование Сессии, т.к. SID выдается на 2 часа.

- добавить проверку соединения с сервером

- добавить обработку ответов при отправки СМС.

См. также

Email, SMS, Telegram рассылки из 1С - Директ Маркетинг

Управление взаимоотношениями с клиентами (CRM) Мессенджеры и боты SMS рассылки Email рассылки Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Полный набор инструментов для качественных транзакционных и маркетинговых Email, SMS, Telegram рассылок из 1С. Даже простые уведомления об оплате счетов способны существенно упростить сбор дебиторской задолженности. Применение всех возможностей прямого маркетинга выводит коммуникацию с клиентами, уровень сервиса и лояльность на новый уровень.

7788 руб.

07.04.2014    83618    40    191    

127

Подтверждение скидки и верификация дисконтной карты по СМС (SMS) или звонку для 1С

SMS рассылки Оптовая торговля Розничная торговля Оперативный учет 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Клиенту на номер телефона уходит СМС с четырехзначным случайным цифровым кодом. Клиент сообщает код продавцу, если код подходит, только тогда применяется скидка или бонусная программа. Вместо SMS можно направлять входящий звонок на телефон покупателя, последние четыре цифры и будут являться кодом подтверждения.

4500 руб.

06.09.2017    25098    25    0    

32

Вставляем картинку из буфера обмена (платформа 1С 8.3.24)

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    2665    0    John_d    8    

53

Переоткрытие внешних обработок

Универсальные функции Платформа 1С v8.3 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    3956    ke.92@mail.ru    16    

61

Универсальная простая отправка СМС

SMS рассылки Абонемент ($m)

Расширение предназначено для оправки СМС по списку телефонов. Является универсальным и подойдёт для любой конфигурации.

2 стартмани

14.09.2023    1456    3    Viki_push    3    

50

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    8808    YA_418728146    6    

141

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2071    21    progmaster    7    

3
Вознаграждение за ответ
Показать полностью
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Deda 419 27.08.15 05:27 Сейчас в теме
+ 10 За полезную работу, которая значительно экономит время людям!
3. capitan 2466 27.08.15 12:25 Сейчас в теме
(1) Deda, хитрый ход :)
На самом деле, есть более простой способ перевести $m.
2. Зеленоград 27.08.15 09:32 Сейчас в теме
Интересно. Тарифы, ограничения, наличие заготовки под 7.7 ?
4. IBAtelecom 31.08.15 17:17 Сейчас в теме
службы технической поддержки IBA Telecom

8 (800) 555 06 41 - бесплатная линия по РФ
Тел: 8 (499) 653-61-30/ вн. 140
E-mail: support@ibatele.com

http://www.ibatele.com

У нас на сайте есть модуль для интеграции с 1С 8.2, используйте его.
Ссылка для скачивания:
Пример работы с сервисом для 1C 8.2
5. milolan 4 01.07.22 14:30 Сейчас в теме
Спасибо автору - рабочий код. немного добавлю от себя: не изменял файл cacert.pem, а дополнил текст функций.
платформа 8.3.18.1741
Функция ОтправитьСМС(Сессия, Получатель, Отправитель, Текст)Экспорт 
 Настройки = ПолучитьНастройки(); 
 ssl = Новый ЗащищенноеСоединениеOpenSSL();
 Соединение =Новый HTTPСоединение(Настройки.Сервер,,,,,15,ssl); //Таймаут и ssl
 Запрос =Новый HTTPЗапрос("/Sms/Send?sessionId="+ Сессия +"&sourceAddress="+ Отправитель +"&destinationAddress="+ Получатель +"&data="+Текст); 
 Заголовки =Новый Соответствие(); 
 Ответ = Соединение.ОтправитьДляОбработки(Запрос);
 Возврат Ответ.ПолучитьТелоКакСтроку();
КонецФункции 
Показать

и аналогичные изменения в следующей функции
Функция ОтправитьСМС(Сессия, Получатель, Отправитель, Текст)Экспорт 
 Настройки = ПолучитьНастройки(); 
 ssl = Новый ЗащищенноеСоединениеOpenSSL();
 Соединение =Новый HTTPСоединение(Настройки.Сервер,,,,,15,ssl); 
 Запрос =Новый HTTPЗапрос("/Sms/Send?sessionId="+ Сессия +"&sourceAddress="+ Отправитель +"&destinationAddress="+ Получатель +"&data="+Текст); 
 Заголовки =Новый Соответствие(); 
 Ответ = Соединение.ОтправитьДляОбработки(Запрос);
 Возврат Ответ.ПолучитьТелоКакСтроку();
КонецФункции 
Показать
Оставьте свое сообщение