Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Рассылка СМСок через СМС шлюз          
Log1c Подменю пользователя
сообщение 15.04.12, 15:33
Сообщение #1

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 178
Из: Харьков
Спасибо сказали: 27 раз
Рейтинг: 0

Задача: написать обработку которая будет посылать пакет СМСок разным клиентам с текстом. Отправку сделать по протоколу SMPP. Так же сделать обработку получаемых данных(статусов СМСок).
Заключен договор с провайдером таких услуг.

Собственно код: (не мой, нашел и чуть переделал)

&НаКлиенте
Процедура ВывестиОтвет(Текст)
    КолСтрок = Текст.КоличествоСтрок();
    Для Инд = 1 По КолСтрок Цикл
        Стр = Текст.ПолучитьСтроку(Инд);
        Сообщить(Стр);
    КонецЦикла;
КонецПроцедуры

&НаСервере
Функция ЗапросHTTP(Сервер, СтрокаПолучения, ИмяВходящегоФайла)
    Текст = Новый ТекстовыйДокумент();
    Попытка
        Соединение = Новый HTTPСоединение(Сервер,,,,);
        Соединение.Получить(СтрокаПолучения, ИмяВходящегоФайла,);
        ВходящийФайл = Новый Файл(ИмяВходящегоФайла);
        Если НЕ ВходящийФайл.Существует() Тогда
            Сообщить("Не удалось получить ответ с сервера");
            Возврат 0;
        КонецЕсли;
        Текст.Прочитать(ИмяВходящегоФайла, КодировкаТекста.UTF8);
        Возврат Текст;
    Исключение
        Сообщить("Ошибка: " + ОписаниеОшибки());
        Возврат 0;
    КонецПопытки;
КонецФункции

&НаКлиенте
Процедура ОтправитьSMS(Команда)
    ИмяВходящегоФайла = "" + КаталогВременныхФайлов() + "outsms.txt";
    Текст = Новый ТекстовыйДокумент();
    login = "login";
    password = "password";
    from = "from";
    Сервер = "server.com.ua";
    СтрокаПараметраПолучения = "/sms/";

    ВыбНомер = "380931234567";
    ВыбТекст = "text";
    Текст = ЗапросHTTP(Сервер
                        ,[b] СтрокаПараметраПолучения + "processing?From=" + from + "&To=" + СокрЛП(ВыбНомер) + "&Text=" + СокрЛП(ВыбТекст)[/b]
                        , ИмяВходящегоФайла);                
    ВывестиОтвет(Текст);
КонецПроцедуры


Код рабочий, назад приходит ответ (outsms.txt), вида:
Цитата
ID:op@1333888624866
Status:0


Вопрос: как отправлять запрос на получение данных(статусов отправленных СМСок) по всей рассылке?

Прислали вот такой формат отправки запроса:

Цитата
1. POST URI HTTP/1.1
2. Host: localhost
3. Content-Type: text/xml; charset=utf-8
4. Content-Length: length
5. SOAPAction: Action
6.
7. <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://ws.server.com.ua/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
8. <soapenv:Body>
9. <q0:requestNotificationStatus>
10. <arg0>
11. <requestID>notificationID</requestID>
12. <user>
13. <password>password</password>
14. <userName>login</userName>
15. </user>
16. <statusType>statusType</statusType>
17. </arg0>
18. </q0:requestNotificationStatus>
19. </soapenv:Body>
20. </soapenv:Envelope>
21.


Это я так понял структура получаемого файла:

Цитата
22.
23. HTTP/1.1 200 OK
24. Content-Type: text/xml; charset=utf-8
25. Content-Length: length
26.
27. <?xml version="1.0" ?>
28.
29. <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
30. - <S:Body>
31. - <ns2:requestNotificationStatusResponse xmlns:ns2="http://ws.server.com.ua/">
32. - <return>
33. <errorDescription />
34. <notificationResponse>0</notificationResponse>
35. <accepted>accepted</accepted>
36. <delivered>delivered</delivered>
37. <expired>expired</expired>
38. <notificationID>notificationID</notificationID>
39. - <statuses>
40. <errorDescription />
41. <notificationResponse>notificationResponse </notificationResponse>
42. <date>date</date>
43. <id>messageID</id>
44. <phone>phone</phone>
45. <status>status</status>
46. </statuses>
47. <total>total</total>
48. <undeliverable>undeliverable</undeliverable>
49. </return>
50. </ns2:requestNotificationStatusResponse>
51. </S:Body>
52. </S:Envelope>


Я так понял надо передавать в GET запросе xml файл?


Signature
1С:Предприятие 7.7 БУ + ТиС + ЗП и кадры 7.70.031 для Украины
1С:Предприятие 8.3 УТП для Украины 1.2.28.1 (обычные формы)

Vofka Подменю пользователя
сообщение 16.04.12, 14:34
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13956
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4

Скорее в POST запросе. А вообще это должен ваш провайдер озвучить.

Спасибо сказали: Log1c,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 01.06.24, 11:14
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!