"CustomerMobilePhoneNumber": "+7 (499) 681-12-52",

                        "CustomerNumber": "21321321",

                        "CustomerRegion": "noregion",

                        "CustomerStreet": "dokukina",

                        "CustomerStreetType": "st.",

                        "CustomerSubregion": "X",

                        "CustomerSurname": "Surname X",

                        "CustomerZipCode": "101000",

                        "DirectDistributionCenterCode": "",

                        "DispatchDate": null,

                        "ExtraParams": null,

                        "InsuranceCurrency": "RUB",

                        "InsuranceValue": 1000,

                        "OrderPlacementTimestamp": "/Date(1450794905000)/",

НЕ нашли? Не то? Что вы ищете?

                        "ParcelBarcode": "",

                        "ParcelHeight": 10,

                        "ParcelLength": 10,

                        "ParcelWeight": 1,

                        "ParcelWidth": 10,

                        "ParcelshopCode": "935002",

                        "ReturnDistributionCenterCode": "",

                        "Services": ["DIRECT_DELIVERY"]

                       }

                ]

               }';

       //check json

       //var_dump(json_decode($data, JSON_UNESCAPED_UNICODE));

       

       echo $data;

               

       // set up the request context

         $options = array("http" => array(

         "method" => "POST",

         "header" => array("Authorization: Basic " . $access_token,

         "Content-Type: application/json"),

       "content" => $data

         ));

         $context = stream_context_create($options);         

         // make the request

         $response = file_get_contents($url, false, $context);         

       echo "<br/><br/><br/><br/>REST response... <br/><br/>";        

       echo $response; 

}

function GetParcelShops_Soap($user, $pass, $bucode)

{

       echo "<br/><br/><br/><br/>SOAP request... <br/><br/>";        

       

       $wsdl = "https://test-api. hermes-dpd. ru/WS/WebService. svc? singleWsdl";

       $location = "https://test-api. hermes-dpd. ru/WS/";

       

       $options = array("trace" => 1);

       $soap = new SoapClient($wsdl, $options);

               

       //security header

       $header_part = "<wsse:Security SOAP-ENV:mustUnderstand='1'

xmlns:wsse='http://docs. oasis-open. org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'>

  <wsse:UsernameToken wsu:Id='UsernameToken-1'

xmlns:wsu='http://docs. oasis-open. org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd'>

  <wsse:Username>".$user."</wsse:Username>

  <wsse:Password Type='http://docs. oasis-open. org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText'>".$pass."</wsse:Password> 

  </wsse:UsernameToken>

  </wsse:Security>";

       $soap_var_header = new SoapVar($header_part, XSD_ANYXML, null, null, null);

       $soap_header = new SoapHeader('https://test-api. hermes-dpd. ru/WS/', 'wsse', $soap_var_header);

       $soap->__setSoapHeaders($soap_header);

       

       //available methods

       //var_dump($soap->__getFunctions());        

       

       // call function defined in soap server

       $soap -> GetParcelShops(array("businessUnitCode" => $bucode));

       

       echo "<br/>".htmlspecialchars($soap->__getLastRequest());         

       echo "<br/><br/>SOAP response... <br/><br/>";        

         echo "<br/>".htmlspecialchars($soap->__getLastResponse()); 

}

?>

Убедитесь, что для php включены модули расширения soap и openssl. Запрос можно выполнить на любых онлайн-сервисах, например, на http://phpfiddle. org/

Исходный код доступен по ссылке http://phpfiddle. org/main/code/e8ht-sjbw


Тестовая интеграция для 1С

Тестовый пример расположен в файле

Приложение

Список статусов посылок

Название на русском

Название на английском

Комментарий

Новая

NEW

Информация корректно загружена.

Доставлена на терминал (для доставки)

ARRIVED_AT_TERMINAL_PICKUP

Склад Hermes подтвердил получение посылки.

Отправлена в пункт выдачи

OUT_FOR_DELIVERY

Посылка прошла сортировку и покинула склад перевозчика.

Доставлена в пункт выдачи

DELIVERED_TO_DESTINATION

Посылка доставлена в пункт выдачи.

Принята в пункте выдачи

ARRIVED_AT_PARCEL_SHOP

Посылка принята оператором пункта выдачи.

Выдана

RECEIVED

Посылка выдана получателю.

Просрочена

NON_PICKED

Истек срок хранения в пункте выдачи. Посылка находится в ПВЗ и ждет отправки.

Отказ

REFUSED_BY_CUSTOMER

Отказ получателя от посылки.

Отправлена на терминал (возврат)

UNDELIVERED

Посылка покинула пункт выдачи по истечению срока хранения.

Доставлена на терминал (возврат)

ARRIVED_AT_TERMINAL_PICKUP_RETURN_WAY

Возврат. Посылка на доставке в промежуточном терминале.

Отправлена поставщику

OUT_FOR_DELIVERY_RETURN_WAY

Возврат. Посылка в течение дня будет возвращена на складе Клиента.

Получена поставщиком

DELIVERED_TO_DESTINATION_RETURN_WAY

Возврат. Посылка принята на складе Клиента.

Ошибочно доставлена в пункт выдачи

MISROUTED

Посылка доставлена не по тому адресу пункта выдачи.

Перенаправлена в другой пункт выдачи

MISDIRECTED

Посылка перенаправляется в ближайший пункт выдачи.

В пути между терминалами

ON_ROAD_BETWEEN_TERMINALS

Посылка находится на доставке в пункт выдачи между региональными терминалами. Промежуточный статус доставки.

Доставлена на транзитный терминал

ARRIVED_AT_TERMINAL_TRANSIT

Посылка находится в транзитном терминале. Промежуточный статус доставки.

Доставлена на терминал доставки

ARRIVED_AT_TERMINAL_DELIVERY

Отправление находится в терминале доставки. Промежуточный статус доставки.

Доставка не состоялась

DELIVERY_NOT_DONE

Доставка в пункт выдачи не состоялась. Причину нужно смотреть индивидуально по каждой посылке.

Потеряна при доставке

LOST_DELIVERY

Потеря посылки в момент доставки.

Проблемы при доставке

PROBLEM_DELIVERY

Проблемы при доставке. Причину необходимо уточнить.

Возвращена с маршрута

RETURNED_FROM_DELIVERY

Доставка в пункт выдачи не удалась, посылка вернулась на терминал.

В пути между терминалами (возврат)

ON_ROAD_BETWEEN_TERMINALS_RETURN_WAY

Посылка возвращается на склад Клиента и находится на доставке между региональными терминалами.

Доставлена на транзитный терминал (возврат)

ARRIVED_AT_TERMINAL_TRANSIT_RETURN_WAY

Возвращаемая посылка находится в транзитном терминале.

Доставлена на терминал доставки (возврат)

ARRIVED_AT_TERMINAL_DELIVERY_RETURN_WAY

Возвращаемая посылка находится на терминале города Клиента.

Доставка не состоялась (возврат)

DELIVERY_NOT_DONE_RETURN_WAY

Доставка посылок на склад Клиента не состоялась.

Потеряна при доставке (возврат)

LOST_DELIVERY_RETURN_WAY

Возвращаемая посылка потеряна в момент доставки.

Проблемы при доставке (возврат)

PROBLEM_DELIVERY_RETURN_WAY

Проблемы при доставке возвращаемых посылок.

Возвращена с маршрута (возврат)

RETURNED_FROM_DELIVERY_RETURN_WAY

По не были переданы на складе Клиента и были возвращены на склад Hermes.

Возврат поставщику подтвержден

RETURN_CONFIRMED

Возвращаемые посылки переданы отправителю.

Принята в пункте выдачи (клиентский возврат)

CUSTOMER_RETURN_RECEIVED

C2B – Пункт выдачи принял посылку у получателя.

Отправлена на терминал (клиентский возврат)

PICKED_UP_BY_COURIER_CUSTOMER_RETURN

C2B – Посылка отправлена из пункта выдачи.

Доставлена на терминал (клиентский возврат)

ARRIVED_AT_TERMINAL_PICKUP_CUSTOMER_RETURN

C2B – Посылка проходит сортировку на складе перевозчика.

В пути между терминалами (клиентский возврат)

ON_ROAD_BETWEEN_TERMINALS_CUSTOMER_RETURN

C2B – Посылка покинула склад перевозчика и находится в между терминалами перевозчика.

Доставлена на транзитный терминал (клиентский возврат)

ARRIVED_AT_TERMINAL_TRANSIT_CUSTOMER_RETURN

C2B - Промежуточный статус доставки между терминалами перевозчика.

Доставлена на терминал доставки (клиентский возврат)

ARRIVED_AT_TERMINAL_DELIVERY_CUSTOMER_RETURN

C2B – Посылка находится в терминале города Клиента

Отправлена поставщику (клиентский возврат)

OUT_FOR_DELIVERY_CUSTOMER_RETURN

C2B – Посылка будет возвращена сегодня на склад Клиента

Доставка не состоялась (клиентский возврат)

DELIVERY_NOT_DONE_CUSTOMER_RETURN

C2B – Возврат посылки на складе Клиента не состоялся.

Потеряна при доставке (клиентский возврат)

LOST_DELIVERY_CUSTOMER_RETURN

C2B – Посылка потеряна в момент доставки на склад Клиента

Проблемы при доставке (клиентский возврат)

PROBLEM_DELIVERY_CUSTOMER_RETURN

C2B – Проблемы при доставке посылки на склад Клиента

Возвращена с маршрута (клиентский возврат)

RETURNED_FROM_DELIVERY_CUSTOMER_RETURN

C2B – Посылка возвращена на склад перевозчика из-за проблем в момент доставки на склад Клиента

Получена поставщиком (клиентский возврат)

DELIVERED_TO_DESTINATION_CUSTOMER_RETURN

C2B – Посылка возвращена на склад Клиенту

Возврат поставщику подтвержден (клиентский возврат)

CUSTOMER_RETURN_CONFIRMED

C2B - Склад Клиента подтвердил прием посылки от Hermes

Инвентаризирована

INVENTORIED

В пункте выдачи проходит инвентаризация, посылка успешно прошла инвентаризацию и находится в ПВЗ.

Потеряна

MISSING

Потеря посылки в пункте выдачи после инвентаризации. Статус не окончательный и требует дальнейшего разбирательства.

Окончательно потеряна

LOST

По посылке было разбирательство, ее искали, но не нашли. Это означает, что она утеряна, по ней можно выставить претензию.



Список причин отказа получателя от посылки

Название на русском (RefuseReasonName)

Название на английском (RefuseReasonSystemName)

Отказ платить

REFUSED_BY_CUSTOMER_REFUSED_TO_PAY

Посылка повреждена

REFUSED_BY_CUSTOMER_DAMAGED

Повторная посылка

REFUSED_BY_CUSTOMER_DUPLICATE_PARCELS

Неверное содержимое

REFUSED_BY_CUSTOMER_WRONG_CONTENT


Формат даты в ответе сервисов

В некоторых случаях при вызове методов формат даты может быть в формате /Date(1449672181000+0300)/. В текущей версии API используется майкрософтовский сериализатор, он так выполняет сериализацию дат https://msdn. /ru-ru/library/bb412170(v=vs.110).aspx

Это число миллисекунд в часовом поясе GMT по-обычному (не летнему) времени, прошедшее с 1 января 1970 г. Это число может быть отрицательным для представления более раннего времени. Часть строки "+0500" является необязательной и показывает, что это время в формате Local, т. е. при десериализации оно должно быть преобразовано в местный часовой пояс. Если эта часть строки отсутствует, время десериализуется как UTC. Собственно, число (в данном случае "0500") и его знак (+ или -) игнорируются."

Т. е. дата 2015-12-22T14:35:05.000+0300 будет /Date(1450784105000+0300)/

В следующей версии API это уже исправлено, будет использоваться сериализатор Newtonsoft. Json и формат ISO 8601


Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8