Документация (высылается по запросу) указывает на то, что сервис имеет 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 часа.
- добавить проверку соединения с сервером
- добавить обработку ответов при отправки СМС.