Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Данный сценарий мы используем в том случае, если нам нужно совместить стандартные сценарии авторизации при помощи системных уведомлений и авторизацию через API. Для такого решения мы используем специальную настройку, которую можно установить на любом уровне авторизации, например, в приведенном ниже примере мы сначала авторизуем заказ в Кортеос, а потом делаем авторизацию в какой-то внешней системе при помощи API.

...

  • @id_ComplexReserve - номер авторизуемой командировки, предназначен для выгрузки при помощи метода SOAP API GetReservationDetails

  • @id_Authorization - идентификатор уровня авторизации, нужно передавать обратно при вызове метода согласования

  • @hash - подпись запроса для проверки целостности, следует передавать обратно при вызове метода согласования

...

Code Block
languagec#
Match m = Regex.Match(hash, "COMPLEXAUTH-(.+)", RegexOptions.IgnoreCase);
if (m.Success)
{
     var svc = new ComplexAuthWS.ComplexAuthAPI();
     svc.Url = CurrentWebSite.CurrentEnvironment.CurrentWebSiteUrl + "/PortableViews/ModComplexAuthViews/API/ComplexAuthAPI.asmx";
     svc.Authorize(id_Authorization: id_ComplexReserve, IsSucceed: authorize, Comment: authorize ? "согласовано" : "не согласовано", Hash: m.Groups[1].Value);
     return "ok";
}

Веб-сервис для получения списка командировок, по которым была запрошена авторизация в заданный период 08.02.2022

Для получения списка необходимо использовать веб-сервис: YourDomain/PortableViews/ModComplexAuthViews/API/ComplexAuthAPI.asmx

WSDL: YourDomain/PortableViews/ModComplexAuthViews/API/ComplexAuthAPI.asmx?WSDL

Метод: YourDomain/PortableViews/ModComplexAuthViews/API/ComplexAuthAPI.asmx?op=GetComplexReservesByStartAuth

Параметры:

  • DateTime dateFrom - дата “с“ периода

  • DateTime dateTo - дата “по“ периода

Authorization: Basic

Пример запроса:

Expand
Code Block
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cor="https://corteos.ru/">
   <soapenv:Header/>
   <soapenv:Body>
      <cor:GetComplexReservesByStartAuth>
         <cor:dateFrom>2021-11-26T10:00:00</cor:dateFrom>
         <cor:dateTo>2021-11-26T15:00:00</cor:dateTo>
      </cor:GetComplexReservesByStartAuth>
   </soapenv:Body>
</soapenv:Envelope>
Image AddedImage Added

Пример ответа:

Expand
Code Block
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <GetComplexReservesByStartAuthResponse xmlns="https://corteos.ru/">
         <GetComplexReservesByStartAuthResult>
            <ComplexAuth id_ComplexReserve="774417" id_Authorization="419901" Hash="61b5b5e65a8bf191f6ac83eee6c54e97"/>
            <ComplexAuth id_ComplexReserve="774417" id_Authorization="419902" Hash="e4446c6dfd71775907d927c60b2c004e"/>
         </GetComplexReservesByStartAuthResult>
      </GetComplexReservesByStartAuthResponse>
   </soap:Body>
</soap:Envelope>
Image Added