На этом сайте уже видел реализации отправки СМС через turbosms.com.ua , но там отправка сделана через mysql-connector .
Возможно, кому-то так и удобнее, но что делать тем, у кого порты нужные закрыты и наружу только HTTP смотрит ? - Ответ: отправлять СМС по SOAP TurboSMS.
И чтобы не тратить ваше время на изучение документации на их сайте делюсь обработкой, в которой реализованы следующие методы:
- Auth — авторизирует пользователя на сервере
- GetCreditBalance — возвращает остаток на счёте пользователя
- SendSMS — отправляет сообщения
- GetMessageStatus — возвращает статус доставки сообщения
C HTTP работаю через WinHttp.WinHttpRequest.5.1, поэтому код процедур легко можно переписать и для 7.7 :
Функция Auth(ТурбоЛогин,ТурбоПароль,Прокси)
ВинХТТП =Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
Если ЗначениеЗаполнено(Прокси) Тогда
ВинХТТП.SetProxy(2,Прокси);
КонецЕсли;
ВинХТТП.Open("POST","http://turbosms.in.ua/api/soap.html",0);
sXML =
"<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:tur=""http://turbosms.in.ua/api/Turbo"">
| <soapenv:Header/>
| <soapenv:Body>
| <tur:Auth>
| <!--Optional:-->
| <tur:login>"+СокрЛП(ТурбоЛогин)+"</tur:login>
| <!--Optional:-->
| <tur:password>"+СокрЛП(ТурбоПароль)+"</tur:password>
| </tur:Auth>
| </soapenv:Body>
|</soapenv:Envelope>";
ВинХТТП.Send(sXML);
Если Найти(ВинХТТП.ResponseText(),"Вы успешно авторизировались")>0 Тогда
Возврат ВинХТТП.getResponseHeader("Set-Cookie");
Иначе
Возврат "";
КонецЕсли;
КонецФункции
Функция GetCreditBalance(Прокси,Куки)
ВинХТТП =Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
Если ЗначениеЗаполнено(Прокси) Тогда
ВинХТТП.SetProxy(2,Прокси);
КонецЕсли;
ВинХТТП.Open("POST","http://turbosms.in.ua/api/soap.html",0);
sXML =
"<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:tur=""http://turbosms.in.ua/api/Turbo"">
|<soapenv:Header/>
| <soapenv:Body>
| <tur:GetCreditBalance/>
| </soapenv:Body>
|</soapenv:Envelope>";
ВинХТТП.setRequestHeader ("COOKIE", Куки);
ВинХТТП.Send(sXML);
Возврат ПарситьСтроку(ВинХТТП.ResponseText(),"<ns1:GetCreditBalanceResult>","</ns1:GetCreditBalanceResult>");
КонецФункции