Имя: Пароль:
1C
 
Отправка СМС сообщения
0 Radion
 
29.04.15
14:40
Добрый день, имеется веб сервис: http://api.smsim.co.il/SendMessageXml.ashx?InforuXML={xml}
хочу отправить на него сообщения, в виде xml файла:
    Парам = "<?xml version=""1.0"" encoding=""utf-8"" ?>" +                    
    "<Inforu>" +
    "<User>"   +
    "<Username>"+SMS_User+"</Username>"+
    "<Password>"+SMS_Pass+"</Password>"+
    "</User>"
    "<Content Type=""sms"">" +
    "<Message>"+СокрЛП(Text)+"</Message>" +
    "</Content>"+
    "<Recipients>"+
    "<PhoneNumber>"+СокрЛП(PhonPartner)+"</PhoneNumber>" +
    "</Recipients>"+
    "<Settings>"+
    "<SenderNumber>"+СокрЛП(SMS_From)+"</SenderNumber>"+
    "</Settings>"+
    "</Inforu>";
Система выдает ошибку - <Result><Status>-11</Status><Description>Error: Illegal XML</Description><NumberOfRecipients>0</NumberOfRecipients></Result>
Не могу понять в чем ошибка ??? Все вроде заполнено.
1 dmitriy_zima
 
29.04.15
14:44
сервис вернул ошибку со статусом -11, в ТП спросить не пробовали
2 oleg_km
 
29.04.15
14:47
(2) На каком языке? Зайди на сайт:

http://www.smsim.co.il/public/desktop2sms.html
3 dmitriy_zima
 
29.04.15
14:47
не нравится ему тот xml, который отправляете
4 Radion
 
29.04.15
14:48
иврит, епт дозвониться не могу к ним ((
5 dmitriy_zima
 
29.04.15
14:48
а что мешает использовать другого провайдера?
6 Radion
 
29.04.15
14:48
(3) да я понял, хотя структуру соблюдал четко. Проверку на неверные символы сделал.
7 Radion
 
29.04.15
14:48
на этом провайдере большая оплата
8 dmitriy_zima
 
29.04.15
14:50
например http://sms-assistent.ru/
есть готовые модули для интеграции в 1с
9 dmitriy_zima
 
29.04.15
14:51
да и у любого оператора мтс или билайн такие сервисы тоже есть
10 Radion
 
29.04.15
14:53
(8) как раз использую их модуль для отправки
11 dmitriy_zima
 
29.04.15
15:01
(10) ну что тогда сказать если и их модуль не работает. - классный сервис )))


или используешь модуль асистента для отправки в сервис из (0)?
12 Garykom
 
гуру
29.04.15
15:07
(0) юзай уже готовые с интеграцией с 1С... к примеру http://www.smspilot.ru/software.php
13 Radion
 
30.04.15
13:00
написал на support ответили, что нужно отправлять в формате UTF8. Нашел функции перекодирования xml текста в UTF8, но что так и не работает. Нашел функцию (русский текст перекодирует а латиницу почему то нет), вот функции:  
Функция ПерекодироватьВUTF8(СтрТекст)
    Стр = СтрТекст;
    Стрим = Новый COMObject("Adodb.Stream");
    Стрим.Type = 2;
    Стрим.Mode = 3;
    Стрим.charset="utf-8";
    Стрим.Open();
    Стрим.WriteText(Стр);
    Стрим.Position=0;
    Стрим.charset="windows-1251";
    Рез=Стрим.ReadText(-1);
    Стрим.Close();
    Возврат Рез;
КонецФункции
остальные найденные, как я понял перекодируют только русский текст (
14 Лефмихалыч
 
30.04.15
13:08
(0) вот это "InforuXML={xml}" - причина. Судя по во  этому http://www.smsim.co.il/public/SMSIM_API.pdf
текст xml-ки должен прямо в запросе быть написан непосредственно то есть
http://api.smsim.co.il/SendMessageXml.ashx?<Inforu><User>blablabla</User>blablabla</Inforu&gt;

вывод сделал из примера для php
15 Radion
 
30.04.15
13:31
все равно не получается
16 Лефмихалыч
 
30.04.15
13:36
(15) меняй провайдера
17 Garykom
 
гуру
30.04.15
14:15
(16) уже предлагал...не слушается
18 Лефмихалыч
 
30.04.15
14:20
(17) видимо нужен именно кошерный провайдер
19 ViSo76
 
30.04.15
14:24
Используй для вывода объект ТекстовыйДокумент:

оФайл = Новый ТекстовыйДокумент;
оФайл.Вывод = ИспользованиеВывода.Разрешить;

оФайл.ДобавитьСтроку( "Выводим в формате UTF8" );

оФайл.Записать( ПутьККаталогу + ИмяФайла + "xml", КодировкаТекста.UTF8 );
20 Garykom
 
гуру
30.04.15
14:53
(18) в смысле халяльный ?
21 Radion
 
30.04.15
14:55
условие следующее подключения:
Using Dot Net Programming:
1. Message text must be escaped with System.Security.SecurityElement.Escape.
2. XML must be encoded by HttpUtility.UrlEncode(xml, .Text.Encoding.UTF8)

Может нужно отправлять через System.Security.SecurityElement.Escape ?
22 Radion
 
30.04.15
14:56
(20) it's Israel bb )
23 Garykom
 
гуру
30.04.15
15:34
Берешь пример для VB или C# добиваешься чтобы работал. Далее делаешь ифейсу командная строка и юзаешь эту программулину из 1С
24 Radion
 
06.05.15
11:19
Подниму тему )
Вопрос - каким образом написать в 1С такой запрос на веб-сервис: string result = PostDataToURL("http://api.smsim.co.il/SendMessageXml.ashx";, "InforuXML=" + strXML);
25 Garykom
 
гуру
06.05.15
19:06
(24) так и хочется спросить... Вам шашечки или ехать?

есть 2 простых варианта:

1. поставить апач2, пример для php (из их api) засунуть и сверху микрообертку для вызова из 1С

2. поставить нужные VS + .net framawork, примеры для C# или VB (из их api) скомпилить и сверху небольшой допил для вызова консольной проги с параметрами из 1С

ЗЫ писал уже в (23)

ЗЗЫ да можно наваять ВК для 1С на том же C# но это сложнее в разы
26 Serginio1
 
10.05.15
14:38
27 Serginio1
 
12.05.15
12:23
Я так понимаю это не вэб сервис а HTTP запрос
То есть
http://api.smsim.co.il/SendMessageXml.ashx?InforuXML={xml}
xml должен быть кодирован

HttpUtility.UrlEncode(xml, Text.Encoding.UTF8)
28 Serginio1
 
12.05.15
12:24
29 Radion
 
12.05.15
12:48
Спасибо, получилось!