Подключение к веб-сервису клиентов по продукту ЭКСПРЕСС-ДОСТАВКА на примере Postman

1. Получение файла WSDL

а) перейти на страницу веб-сервиса https://ed.major-express.ru/edclients2.asmx?wsdl,
б) указать данные своей учетной записи:

г) сохранить страницу как… (Ctrl+S):

2. Добавление сервиса в коллекцию Postman

а) во вкладке Collections вашего Workspace нажать на Import:

б) в открывшемся окне выбрать “Select Files”:

в) загрузить скачанный WSDL-файл:

г) нажать “Import”:

д) коллекция добавлена:

3. Настройка авторизации

а) в корне коллекции перейти во вкладку “Authorization (Авторизация)“,
б) в комбо-боксе выбрать тип авторизации “Basic Auth”,
в) в поля Username и Password ввести данные своей учетной записи клиента Major Express,
г) нажать “Save”.

В результате будет сформирована строка “username:password”, закодированная в base64 и будет передаваться в header всех запросов этой коллекции, если внутри метода указать в параметрах авторизации “Inherit auth from parent” (наследовать от родительского элемента).

Аналогичным образом можно задавать данные для авторизации в каждом методе отдельно, выбирая “Basic Auth“ вместо “Inherit auth from parent” и передавая данные пользователя в соответствующие поля:



Примеры запросов для базовых методов:

1. Получение списка городов

Postman

Запрос в виде HTTP-request
POST /edclients2.asmx HTTP/1.1
Host: ed.major-express.ru
Content-Type: text/xml; charset=utf-8
SOAPAction: http://ltl-ws.major-express.ru/edclients/dict_Cities
Authorization: Basic eW91cjpjcmVkZW50aWFscw==
Content-Length: 225

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <dict_Cities xmlns="http://ltl-ws.major-express.ru/edclients/"/>
  </soap:Body>
</soap:Envelope>

Запрос в виде cURL
curl -L 'https://ed.major-express.ru/edclients2.asmx' -H 'Content-Type: text/xml; charset=utf-8' -H 'SOAPAction: http://ltl-ws.major-express.ru/edclients/dict_Cities' -H 'Authorization: Basic eW91cjpjcmVkZW50aWFscw==' -d '<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <dict_Cities xmlns="http://ltl-ws.major-express.ru/edclients/"/>
  </soap:Body>
</soap:Envelope>

Аналогичным образом совершаются запросы к методам dict_Cities2 и dict_Cities3 предоставляющим расширенную информацию по справочнику городов Мэйджор-Экспресс.

2. Создание заказа на вызов водителя-экспедитора на адрес отправления

Postman

Запрос в виде HTTP-request
POST /edclients2.asmx HTTP/1.1
Host: ed.major-express.ru
Content-Type: text/xml; charset=utf-8
SOAPAction: http://ltl-ws.major-express.ru/edclients/CreateOrder
Authorization: Basic eW91cjpjcmVkZW50aWFscw==
Content-Length: 1560

<?xml version="1.0"?>
<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>
        <CreateOrder xmlns="http://ltl-ws.major-express.ru/edclients/">
            <RequestID>84b5aee6-fd6e-4b12-8a4e-0f2157bed31d</RequestID>
            <CargoTakenDate>2024-03-01</CargoTakenDate>
            <OrderIntervalID>3</OrderIntervalID>
            <Shipper>
                <Person>Имя отправителя</Person>
                <Phone>Телефон отправителя</Phone>
                <Company>Компания отправителя</Company>
                <Address>Адрес Отправителя</Address>
                <CityCode>129</CityCode>
            </Shipper>
            <Consignee>
                <Person>Имя получателя</Person>
                <Phone>Телефон получателя</Phone>
                <Company>Компания получателя</Company>
                <Address>Ул. Добролюбова, 2с1</Address>
                <CityCode>129</CityCode>
            </Consignee>
            <Weight>0.2</Weight>
            <Package>3</Package>
            <Cost>3000</Cost>
            <Size>
                <Length>20</Length>
                <Width>10</Width>
                <Height>10</Height>
            </Size>
            <Description>Тест</Description>
            <Remarks>ТесТ</Remarks>
            <IsOrderUrgent>0</IsOrderUrgent>
            <CostCenter xsi:nil="true" />
            <IsWBRequired>1</IsWBRequired>
        </CreateOrder>
    </soap:Body>
</soap:Envelope>

Запрос в виде cURL
curl -L 'https://ed.major-express.ru/edclients2.asmx' -H 'Content-Type: text/xml; charset=utf-8' -H 'SOAPAction: http://ltl-ws.major-express.ru/edclients/CreateOrder' -H 'Authorization: Basic eW91cjpjcmVkZW50aWFscw==' -d '<?xml version="1.0"?>
<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>
        <CreateOrder xmlns="http://ltl-ws.major-express.ru/edclients/">
            <RequestID>84b5aee6-fd6e-4b12-8a4e-0f2157bed31d</RequestID>
            <CargoTakenDate>2024-03-01</CargoTakenDate>
            <OrderIntervalID>3</OrderIntervalID>
            <Shipper>
                <Person>Имя отправителя</Person>
                <Phone>Телефон отправителя</Phone>
                <Company>Компания отправителя</Company>
                <Address>Адрес Отправитпеля</Address>
                <CityCode>129</CityCode>
            </Shipper>
            <Consignee>
                <Person>Имя получателя</Person>
                <Phone>Телефон получателя</Phone>
                <Company>Компания получателя</Company>
                <Address>Ул. Добролюбова, 2с1</Address>
                <CityCode>129</CityCode>
            </Consignee>
            <Weight>0.2</Weight>
            <Package>3</Package>
            <Cost>3000</Cost>
            <Size>
                <Length>20</Length>
                <Width>10</Width>
                <Height>10</Height>
            </Size>
            <Description>Тест</Description>
            <Remarks>ТесТ</Remarks>
            <IsOrderUrgent>0</IsOrderUrgent>
            <CostCenter xsi:nil="true" />
            <IsWBRequired>1</IsWBRequired>
        </CreateOrder>
    </soap:Body>
</soap:Envelope>

Обратите внимание на параметр CostCenter. Если для клиента установлены центры затрат, то передача данных в нем является обязательной. Иначе в параметр следует передать значение null следующим образом:

<CostCenter xsi:nil="true" />

Убедитесь, что в элементе Envelope содержится строка, описывающая составной элемент xsi:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"


3. Создание накладной

Postman

Запрос в виде HTTP-request
POST /edclients2.asmx HTTP/1.1
Host: ed.major-express.ru
Content-Type: text/xml; charset=utf-8
SOAPAction: http://ltl-ws.major-express.ru/edclients/CreateWaybill
Authorization: Basic eW91cjpjcmVkZW50aWFscw==
Content-Length: 1380

<?xml version="1.0" encoding="utf-8"?>
<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>
    <CreateWaybill xmlns="http://ltl-ws.major-express.ru/edclients/">
      <RequestID>02f0f154-3b14-45da-bca1-4430822fc7ee</RequestID>
      <ClientInfo>110243</ClientInfo>
      <Shipper>
        <Person>ФИО Отправителя</Person>
        <Phone>Телефон Отправителя</Phone>
        <Company>Имя Компании Отправитпеля</Company>
        <Address>Адрес Отправителя</Address>
        <PostIndex>111111</PostIndex>
        <CityCode>129</CityCode>
      </Shipper>
      <Consignee>
        <Person>ФИО Получателя</Person>
        <Phone>Телефон Получателя</Phone>
        <Company>Имя Компании Получателя</Company>
        <Address>Адрес Получателя</Address>
        <PostIndex>109444</PostIndex>
        <CityCode>129</CityCode>
      </Consignee>
      <Weight>1</Weight>
      <Package>1</Package>
      <Cost>3000</Cost>
      <Size>
        <Length>10</Length>
        <Width>20</Width>
        <Height>30</Height>
      </Size>
      <Description>Описание</Description>
      <CostCenter xsi:nil="true" />
      <DeliveryCondition>None</DeliveryCondition>
      <DeliveryComment>test</DeliveryComment>
    </CreateWaybill>
  </soap:Body>
</soap:Envelope>

Запрос в виде cURL
curl -L 'https://ed.major-express.ru/edclients2.asmx' -H 'Content-Type: text/xml; charset=utf-8' -H 'SOAPAction: http://ltl-ws.major-express.ru/edclients/CreateWaybill' -H 'Authorization: Basic eW91cjpjcmVkZW50aWFscw==' -d '<?xml version="1.0" encoding="utf-8"?>
<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>
    <CreateWaybill xmlns="http://ltl-ws.major-express.ru/edclients/">
      <RequestID>02f0f154-3b14-45da-bca1-4430822fc7ee</RequestID>
      <ClientInfo>110243</ClientInfo>
      <Shipper>
        <Person>ФИО Отправителя</Person>
        <Phone>Телефон Отправителя</Phone>
        <Company>Имя Компании Отправитпеля</Company>
        <Address>Адрес Отправителя</Address>
        <PostIndex>111111</PostIndex>
        <CityCode>129</CityCode>
      </Shipper>
      <Consignee>
        <Person>ФИО Получателя</Person>
        <Phone>Телефон Получателя</Phone>
        <Company>Имя Компании Получателя</Company>
        <Address>Адрес Получателя</Address>
        <PostIndex>109444</PostIndex>
        <CityCode>129</CityCode>
      </Consignee>
      <Weight>1</Weight>
      <Package>1</Package>
      <Cost>3000</Cost>
      <Size>
        <Length>10</Length>
        <Width>20</Width>
        <Height>30</Height>
      </Size>
      <Description>Описание</Description>
      <CostCenter xsi:nil="true" />
      <DeliveryCondition>None</DeliveryCondition>
      <DeliveryComment>test</DeliveryComment>
    </CreateWaybill>
  </soap:Body>
</soap:Envelope>