Logo_websms4.png

Скрипт активации рассылки из 1С

Скрипт отправляет СМС и возвращать уникальный номер (ID) если принято на сервере без ошибок или 0 / Error если произошла ошибка и сервер не принял.

// НАЧАЛО

// Активация рассылки на ***** из 1С путем отправки и получения HTTP запроса
//
//  описание параметров: 

// Login - ваш логин на *****
// Password  - ваш пароль
// FromName - имя отправителя (устанавливается в личном кабинете)
// ToPhone  -  телефон получателя
// MessText - текст сообщения
// StartDate - дата и время активации рассылки. Формат DD. MM. GGGG HH:MM

// (если StartDate не указан, то дата и время будет текущее)

Function actvate_websms(Login, Password, FromName, ToPhone, MessText, StartDate) Export


// Формирование текста запроса
 QueryLink = "http://cab. *****/http_in5.asp? http_username=" + Login + "&http_password=" + Password + "&phone_list=" + ToPhone;
QueryLink = QueryLink + "&message=" + MessText + "&fromPhone=" + FromName + "&send_on=" + StartDate + "&format=xml"; 


// Создание объекта XMLHttp
 Try
 XMLHttp = GetCOMObject("", "Microsoft. XMLHTTP");
 Except
 DoMessageBox(ErrorDescription(),,"Send SMS-message through cab. *****. ru - create XMLHTTP");
 Return "Error";
EndTry;


 // Инициация HTTP-запроса, возвращающего управление программе после получения ответа:
 Try
 XMLHttp. Open("GET", QueryLink, False);
Except
 DoMessageBox(ErrorDescription(),,"Send SMS-message through cab. ***** - initiate request");
 Return "Error";
EndTry;

 // Отправка запроса:
XMLHttp. Send();


// Проверка ответа и обработка:
If XMLHttp. Status = 200 Then  //Если ОК
  // Разбор XML ответа:
  StreamXML = New XMLReader;
  StreamXML. SetString(XMLHttp. ResponseText);


  // Чтение XML из строки:
  StreamXML. Read();
  If StreamXML. NodeType <> XMLNodeType. StartElement or StreamXML. Name <> "XML" Then
  DoMessageBox("Error while XML Parsing",,"Send SMS-message through cab. *****. ru");
  Return "Error";
  EndIf;


  // Чтение XML строки:
  While StreamXML. Read() Do
  // Не подошли ли к закрытию узла 'XML'?
  If StreamXML. NodeType = XMLNodeType. EndElement Then
  DoMessageBox(XMLHttp. ResponseText,,"Send SMS-message through cab. *****. ru");
 Return "Error";
  EndIf;


  // Чтение XML строки и поиск ключа:
  If StreamXML. Name = "sms" Then
  // StreamXML. Read();
  id = StreamXML. GetAttribute("message_id");
  StreamXML. Close();
  Return id;
  Else
  Continue;
  EndIf;
  EndDo;
  StreamXML. Close();
  Return "0";
  Else
  DoMessageBox("Error: " + XMLHttp. StatusText,,"Send SMS-message through cab. *****. ru");
  Return "Error";
  EndIf;
EndFunction

// КОНЕЦ