Создание заявки OTRS через SOAP на .NET

В интернете более 70 млн ссылок на данную тему, но попробуйте найти хоть одну рабочую ссылку с рабочим примером для .Net!

USERLOGIN – имя агента

USERPASS – пароль агента

CUSTOMERLOGIN – логин клиента

CUSTOMERID – ид клиента

QueueID – ид очереди

StateID – ид состояния заявки

PriorityID – приоритет заявки

IPOTRS – адрес OTRS или имя

NAMESOAP – имя сервиса, указанное в настройках OTRS

responseFromServer – ответ от сервера в формате XML

Пример на C#, SOAP запрос к OTRS 6, без обработки ошибок.  

public void TestSOAP()
{
    string XMLData = @"<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:tic=""http://www.otrs.org/TicketConnector/"">
   <soapenv:Body>
      <tic:TicketCreate>
         <UserLogin>USERLOGIN</UserLogin>
         <Password>USERPASS</Password>
      <Ticket>
                <Title>Web Service Test</Title>
                <CustomerUser>CUSTOMERLOGIN</CustomerUser>
                <CustomerID>CUSTOMERID</CustomerID>
                <QueueID>1</QueueID>
                <StateID>4</StateID>
                <PriorityID>3</PriorityID>
         </Ticket>
         <Article>
             <Subject>Web Service Test</Subject>
             <Body>Это тест</Body>
             <ContentType>text/plain; charset=utf8</ContentType>
         </Article>
      </tic:TicketCreate>
   </soapenv:Body>
</soapenv:Envelope>";

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://IPOTRS/otrs/nph-genericinterface.pl/Webservice/NAMESOAP");
req.Headers.Add("SOAPAction", "http://www.otrs.org/TicketConnector/TicketCreate");
req.ContentType = "text/xml; charset=\"utf-8\"";
req.Accept = "text/xml";
req.Method = "POST";

req.Credentials = CredentialCache.DefaultCredentials;
using (Stream stm = req.GetRequestStream())
  {
    using (StreamWriter stmw = new StreamWriter(stm))
     {
       stmw.Write(XMLData);
     }
  }
    WebResponse response = req.GetResponse();
    Stream dataStream = response.GetResponseStream();
    StreamReader reader = new StreamReader(dataStream);
    string responseFromServer = reader.ReadToEnd();
    reader.Close();
    dataStream.Close();
    response.Close();
    Console.WriteLine(responseFromServer);
 }

Настройки в OTRS

Если запрос отработал, в ответе будет примерно следующее

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<TicketCreateResponse xmlns="http://www.otrs.org/TicketConnector/">
<ArticleID>16466</ArticleID>
<TicketID>193983</TicketID>
<TicketNumber>5608332</TicketNumber>
</TicketCreateResponse>
</soap:Body>
</soap:Envelope>

Окно отладчика сервиса OTRS