Описание API
На этой странице описаны способы использования функций личного кабинета клиента «ПЭК» сторонними сайтами или приложениями. Информация предназначена для разработчиков. Все возникающие вопросы по работе с API личного кабинета можно направлять по адресу: admin-extintegration@pecom.ru
Аутентификация
- Для начала работы с API вам необходимо присвоить Ключ доступа. Данное действие вы можете осуществить на странице «Регистрационные данные» в разделе «Ключи API». Полученный ключ будет являться вашим паролем для доступа к API.
- Для разных приложений (например, веб-сайт и 1С:Предприятие) рекомендуется использовать разные ключи (для сбора статистики, простоты отзыва ключа в случае его компроментации)
- Аутентификация осуществляется c помощью Basic-аутентификации, в качестве логина необходимо использовать имя пользователя личного кабинета клиента «ПЭК», в качестве пароля — любой из активных ключей доступа.
Авторизация
- Доступ к API обеспечивается для двух групп пользователей (анонимный доступ не поддерживается):
- «Зарегистрированные пользователи» — все пользователи личного кабинета клиента «ПЭК» (для регистрации посетите соответствующую страницу)
- «Сторонние неперсонифицированные приложения»
- В документации на каждый метод указано, каким группам пользователей доступен вызов того или иного метода
План по критическим и рекомендуемым изменениям протокола API
В разделе описываются ожидаемые изменения, двух категорий:
- Критические - изменится формат взаимодействия таким образом, что некоторые или все из ранее работающих запросов изменят свое поведение или перестанут работать до внесения изменений на стороне клиента
- Рекомендуемые - из протокола исключены/заменены некоторые реквизиты, и мы рекомендуем перейти на обновленный формат
За всеми подробностями обращайтесь по адресу: admin-extintegration@pecom.ru
Ожидается
В этом списке запросы появляются минимум за неделю до релиза
История изменений
- 16.04.2025
-
- В методе подачи заявок
/PREREGISTRATION/SUBMIT/
добавлена возможность указать требования к транспорту и спец.оборудование при заборе груза, параметрыisSpecialEquipment, isOpenCar, isSideLoad, isUncovered
- В методе подачи заявок
/PREREGISTRATION/SUBMIT/
добавлена возможность указания адреса забора документов на получение груза по другому адресу, параметрaddressForDocuments
и комментарий к адресу забора документов, параметрaddressForDocumentsComment
- В методе подачи заявок
- 06.02.2025
-
- Добавлен метод
/CARGOS/STATUSTABLES/
— список доступных статусов по грузам. Метод /cargos/statustable/ выведен из актуального протокола
- Добавлен метод
- 01.10.2024
-
- В методах подачи заявок актуализированы типы документов, удостоверяющих личность (sender.identityCard.type и receiver.identityCard.type). Возможные значения: 1 - Паспорт (прочие страны), 2 - Разрешение на временное проживание, 3 - Водительское удостоверение, 4 - Вид на жительство, 6 - Удостоверение беженца, 10 - Паспорт гражданина РФ". В актуальной версии протокола не используются типы: 5, 7, 8, 9, 11 и 12
- 01.10.2024
-
- Реализована подача сетевых заявок на забор груза методом
/preregistration/submit/
значение параметра orderType = 14. - Метод подачи сетевых заявок
/cargopickupnetwork/submit/
выведен из актуального протокола API. Ранее осуществленные интеграции с данным методом поддерживаются в рабочем состоянии. Планов прекращать работу метода нет. При этом новых функций и любых доработок в методе/cargopickupnetwork/submit/
не будет.
- Реализована подача сетевых заявок на забор груза методом
- 19.08.2024
-
- В структуру ответа метода
/cargos/deliverystatus/
добавлены реквизитыdeliveryAddress, isLoading, deliveryHypermarket
- В структуру ответа методов
/cargos/status/
и/cargos/statusbypositionbarcodes/
добавлены реквизитыtype, maxSize
- В структуру ответа метода
- 07.08.2024
-
- Метод получения справочника типов штрих-кодов /cargopickupnetwork/availabletypebarcode/ перенесен в группу
/preregistration/availabletypebarcode/
- Метод получения справочника типов штрих-кодов /cargopickupnetwork/availabletypebarcode/ перенесен в группу
- 05.08.2024
-
- Исправлена ошибка при выводе грузов методом
/cargos/listallorderbylogin/
со значением входного параметра: selectBy = 0 (отобрать принятые грузы). До релиза выводились и принятые и не принятые грузы, для не принятых грузов отбирались по дате заявки. После релиза: в выборку будут попадать только принятые на склад ПЭК грузы, отобранные по дате приемки на склад ПЭК.
- Исправлена ошибка при выводе грузов методом
- 10.07.2024
-
- В структуру запроса метода
/preregistration/submit/
добавлена возможность передачи электронной почты отправителя (добавлен реквизит: "sender"/ "email").
- В структуру запроса метода
- 01.07.2024
-
- В структуру ответа метода
/branches/findzonebyaddress/
добавлен реквизит "precision" - критерий точности распознавания координат адреса. - Добавлен метод
/branches/countrytypeidentitydocument/
— возвращает допустимые документы, удостоверяющие личность, для страны отправления / получения - В структуры
sender, receiver
запроса метода/preregistration/submit/
добавлен реквизитindividual
— данные физического лица. Рекомендуем его передавать для контрагентов отправителей/получателей - физических лиц вместо title. -
В структуры
sender.identityCard, receiver.identityCard
запроса метода/preregistration/submit/
добавлен реквизитtypeGuid
— идентификатор типа документа удостоверяющего личность.
sender.identityCard.type
иreceiver.identityCard.type
в актуальной версии протокола не используются. - В структуры
sender.identityCard, receiver.identityCard
запроса метода/preregistration/submit/
добавлен реквизитtaxpayerID
— налоговый номер отправителя ПИН (Киргизстан), ИИН (Казахстан), УПН (Беларусь) и т.п. - В структуры
sender.identityCard, receiver.identityCard
запроса метода/preregistration/submit/
добавлен реквизитtaxpayerCountryCode
— код страны, выдавшей налоговый номер
- В структуру ответа метода
- 30.06.2024
-
-
Критическое. При подаче заявок методом
/PREREGISTRATION/SUBMIT/
добавили проверку на сравнение общих Веса и Объёма груза, переданных в массиве"cargos"
, с суммарными Весом и Объёмом, рассчитанными в массиве грузомест"cargoPlaceList"
. Должны совпадать. Обратите внимание, что массив с данными грузомест не обязателен к передаче. Если передан массив с габаритами каждого грузоместа ("cargos"."cargoPlaceList"
), то сначала вычисляем суммарный вес и суммарный объём (объём одного грузоместа вычисляем: длина*ширина*высота) по всем элементам массива"cargoPlaceList"
, затем округляем (всегда вверх до сотых!) и сравниваем с общими объёмом и весом в массиве"cargos"
(округленными также вверх до сотых!)
-
Критическое. При подаче заявок методом
- 14.05.2024
-
-
Рекомендуемое. В API разработан новый метод
/cargos/statusfullhistory/
- История изменения статусов по заявке/ грузу.
Не рекомендуем использовать старый метод/statushistory/
-
Рекомендуемое. В API разработан новый метод
- 08.05.2024
-
- В структуру запроса метода
/preregistration/submit/
добавлена возможность передачи комментария к забору и интервала забора груза (добавлен блок "pickUpDetails")
- В структуру запроса метода
- 14.03.2024
-
- Добавлен метод
/cargosdocuments/order/
— запрос на предоставление документа по грузу - Добавлен метод
/cargosdocuments/getcontent/
— получение документа по грузу
- Добавлен метод
- 12.03.2024
-
- Из структуры запроса методов
/preregistration/submit/
,/cargopickup/submit/
,/cargopickupnetwork/submit/
был удален реквизит isDayByDay.
- Из структуры запроса методов
- 11.03.2024
-
- В структуру запроса метода
/preregistration/submit/
добавлена возможность передачи электронной почты отправителя и получателя (добавлены реквизиты: "sender"/"email" и "reciever"/"email").
- В структуру запроса метода
- 12.02.2024
-
- В структуру ответа метода
/BRANCHES/NEARESTDEPARTMENTS/
добавлен реквизит "branchId" - ID филиала, к которому относится отделение (организационная привязка).
- В структуру ответа метода
- 07.02.2024
-
- Добавлен метод для быстрой проверки возможности оказания услуг Наложенный платеж и Выдача по СМС (упрощенная выдача) в зависимости от географии перевозки:
/branches/checknocalcservices/
. На данный момент оба сервиса доступны только при перевозке РФ-РФ, однако в этом или следующем году география их предоставления может расшириться.
- Добавлен метод для быстрой проверки возможности оказания услуг Наложенный платеж и Выдача по СМС (упрощенная выдача) в зависимости от географии перевозки:
- 05.02.2024
-
- В структуру ответа метода
/CARGOS/STATUSTABLE/
добавлен реквизит isFinal - признак конечного статуса
- В структуру ответа метода
- 31.01.2024
-
-
Рекомендуемое. В API используется единый идентификатор продукта/тарифа в запросах и ответах всех методов, где это актуально. Полный список доступных в API продуктов/тарифов можно получить методом
/typesOfDelivery/all/
Сохраняется обратная совместимость с текущим протоколом каждого метода.
Рекомендуем Вам доработать подачу запроса в методах:/calculator/calculateprice/
,/branches/nearestdepartments/
и/cargopickupnetwork/submit/
-
Рекомендуемое. В API используется единый идентификатор продукта/тарифа в запросах и ответах всех методов, где это актуально. Полный список доступных в API продуктов/тарифов можно получить методом
- 30.01.2024
-
- Добавлен метод
/typesOfDelivery/all/
. Перечень актуальных продуктов/тарифов перевозки, которые поддерживаются в API - В структуру запроса метода
/calculator/calculateprice/
добавлен реквизитtypes
- Массив идентификаторов продуктов/тарифов ПЭК для расчета. - В структуру ответа метода
/calculator/calculateprice/
добавлен реквизитtype
- Продукт/тариф, для которого выведена стоимость. - В структуру запроса методов
/branches/nearestDepartments/
и/cargopickupnetwork/submit/
добавлен реквизитtype
- Идентификатор продукта/тарифа ПЭК. - Из структуры запроса методов
/calculator/calculateprice/
и/branches/nearestDepartments/
был удалён реквизитtransportingTypes
.
- Добавлен метод
- 26.01.2024
-
- Исправлена ошибка вывода координат. Вернули старый формат ответа метода
/branches/all/
- Исправлена ошибка вывода координат. Вернули старый формат ответа метода
Структура URL
- API представляет собой набор методов, объединённых в группы
- Обращение к методам API осуществляется путём отправки запроса методом POST на URL метода, который формируется следующим образом:
https://kabinet.pecom.ru/api/v1/<группа>/<метод>/
- URL
https://kabinet.pecom.ru/api/v1/
является базовым и далее в документации не указывается - Общее ограничение на количество любых запросов по API: 100 запросов в минуту. После превышения числа запросов API будет возвращать ошибку.
Список групп и методов
-
/auth/
— данные личного кабинета и дополнительная авторизация/profiledata/
— отображение информации, хранящейся в профиле пользователя/createtokentoaccessprivatedata/
— создание токена для методов получения приватной информации
-
/branches/
— информация о странах, филиалах и городах/all/
— список всех филиалов и городов/findzonebycoordinates/
— поиск тарифных зон и филиалов по координатам/findzonebyaddress/
— поиск тарифных зон и филиалов по строке адреса/checkpickupdate/
— определение доступности дат забора груза/nearestdepartments/
— подбор ближайших к адресу отделений для приема/выдачи грузов/suggestaddressofintakeordelivery/
— запрос поисковых подсказок адресов забора/доставки груза/country/
— список стран, в которых присутствуют отделения ПЭК/checknocalcservices/
— проверка возможности предоставления услуг, не проверяемых в методе расчета стоимости/countrytypeidentitydocument/
— возвращает допустимые документы, удостоверяющие личность, для страны отправления / получения
-
/cargos/
— операции с грузами/status/
— статус груза/statusbypositionbarcodes/
— статус груза по клиентским штрих-кодам/basicstatus/
— базовая информация о статусе груза/deliverystatus/
— предоставляет данные по доставке груза/details/
— детальная информация о грузе, фотографии/listallorderbylogin/
— возвращает все грузы контрагентов, к которым есть доступ в личном кабинете/statusfullhistory/
— история изменения статусов по заявке/ грузу/statustables/
— список доступных статусов по грузам/routesanddriverinfo/
— выводит персональные данные водителей, осуществляющих забор/доставку груза/getinfoforcedstorage/
— информация по рассчитанному ВХ./cancelandreturncargo/
— оформление возврата груза отправителю после передачи груза в ПЭК
-
/order/
— операции со всеми видами заявок/cancellation/
— аннулирование ранее созданных заявок на основании кодов грузов/print/
— получения печатных форм заявок и этикеток в формате PDF
-
/cargopickup/
— заказ "на машину" к заказам "на перевозку"/submit/
— подача заказа "На машину и перевозку (разовый забор)" или "На перевозку (с отдельным Заказом на машину)"/submit/
— подача заказа "на машину" к заказам "на перевозку"/status/
— получение статуса услуги "Забор груза"/checkOrderedPickupType3Car/
— получение статуса услуги "Заказа на машину", поданного в рамках услуги "Упрощенный забор"
-
/preregistration/
— заявки на перевозку (авто, авиа) с забором груза от адреса отправителя и предварительное оформление/submit/
— единый метод подачи заявок/availabletypebarcode/
— справочник типов штрих-кодов
-
/accountingdocuments/
— бухгалтерские документы/list/
— получение списка
-
/cargosdocuments/
— предоставление экспедиторских документов по грузам/order/
— запрос на предоставление документа по грузу/getcontent/
— получение документа по грузу
-
/notification/
— уведомления/cargosubscribe/
— подписка на уведомления по грузу
-
/counterparts/
— справочники для работы с контрагентами / данные контрагентов/legalformtypes/
— общий список форм собственности контрагентов (юридических лиц, индивидуальных предпринимателей и т.п.)/confirmedaccesstocounterparties/
— список контрагентов, которые подтвердили свою связь с логином/connecteddiscountsservicesagreements/
— список подключенных контрагенту скидок, сервисов и основных доп.соглашений
-
/receivers/
— список получателей -
/calculator/
— калькуляторы стоимости услуг/calculateprice/
— расчет стоимости и сроков перевозки/checkdeliverydate/
— возвращает ближайшие даты и интервалы времени на забор / доставку груза от даты запроса
-
/typesOfDelivery/
— продукты и тарифы перевозки/all/
— перечень актуальных продуктов/тарифов перевозки, которые поддерживаются в API
-
/cargocontent/
— справочник наименований груза/all/
— список наименований груза
-
/currency/
— валюты/all/
— получение списка валют для расчёта перевозок
-
/clientpackingkind/
— справочник упаковок клиента/all/
— список упаковок клиента
Техническая поддержка
Поддержка оказывается с помощью обращений пользователей личного кабинета клиента «ПЭК» (требуется авторизация).
Используемый протокол
Общее описание
- Запрос должен осуществляться по протоколу HTTPS с обязательной проверкой сертификата сервера клиентом. Для проверки можно использовать файл сертификатов из комплекта PHP SDK.
- Формат передачи входящих и исходящих данных — JSON, кодировка — UTF-8
- Входящие параметры должны передаваться прямо в теле POST запроса в виде строки в формате JSON
- При осуществлении запросов необходимо устанавливать следующие HTTP-заголовки:
Content-Type: application/json;charset=utf-8 Accept: application/json
- Поддерживается gzip-сжатие ответов API (к сожалению, стандарт для сжатия содержимого HTTP-запросов не утверждён). Использование компрессии уменьшает объем ответов в несколько раз.
Для включения сжатия необходимо устанавливать следующий HTTP-заголовок:
Accept-Encoding: gzip
- Все поля JSON-объекта в запросе являются обязательными, если не указано обратное
Типы данных JSON-объектов
Используются стандартные типы данных JSON и следующие типы:
- Для передачи двоичных данных используется кодирование в Base64 и помещение результата в строку. Этот тип данных обозначается в документации следующим образом:
[Binary]
- Для указания филиала или города, относящегося к филиалу используется тип, обозначенный в документации следующим образом:
[City]
Для филиала указывается его наименование в виде строки:{ demoCity: "Курск" }
Для городов, относящихся к филиалам, значение указывается в формате:<Наименование города>, <Наименование филиала>
, например:{ demoCity: "Пристань, Курск" }
Регистр указания наименований городов может быть любым. Список филиалов и городов доступен в результате вызова метода/branches/all/
.
- Значения даты и даты + времени передаются как строки в формате ISO 8601 в следующих определённых стандартом форматах:
Дата:{ demoDateField: "2011-03-10" }
Поля этого типа в описании методов помечаются следующим образом:[Date]
Дата и время:{ demoDateField: "2011-03-10T09:24:24" }
Используется московское время (MSK), если не указано обратное.
Поля этого типа в описании методов помечаются следующим образом:[DateTime]
- Значения времени в пределах суток передаются как строки в формате ISO 8601 в следующих определённых стандартом форматах:
Время:{ demoTimeField: "18:15" }
Время с секундами:{ demoTimeFieldWithSeconds: "18:15:12" }
Используется московское время (MSK), если не указано обратное.
Поля этого типа в описании методов помечаются следующим образом:[Time]
Обработка ошибок
- В случае, если указан неверный URL метода, возвращается страница ошибки с
кодом состояния
404
. Содержимое страницы можно игнорировать, проверяя наличие ошибки только по коду - В случае возникновения ошибки нарушения прав доступа к методу, возвращается страница с кодом состояния
403
. Содержимое страницы также можно игнорировать. - Если возникает логическая ошибка (не указаны необходимые параметры, неверный формат входных данных и т.п.) возвращается ответ с кодом
200
и описанием ошибки в формате JSON:{ "error": { "title": "Соообщение об ошибке", "message": "Детальное описание ошибки" } }
В зависимости от типа ошибки могут быть добавлены дополнительные поля, но поля, указанные в примере выше возвращаются всегда. - При возникновении непредусмотренной ошибки, код состояния устанавливается равным
500
, а в теле ответа выводится сообщение об ошибке в формате описанном выше.
Примеры использования API
Необходимые компоненты
Использование API возможно для большинства платформ и языков программирования и не требуется наличие каких-либо специфических библиотек на клиентской стороне. Необходимые программные компоненты:
- Компонент (библиотека) для приёма и отправки HTTP-запросов с поддержкой протокола HTTPS и Basic-аутентификации (необходимо)
- Компонент (библиотека) для сериализации\десериализации данных из\в формат JSON (опционально)
- Компонент (библиотека) для кодирования\декодирования Base64 (опционально, необходимо только для работы с бинарными данными)
Использование утилит командной строки
В простейшем случае нет необходимости в программировании, достаточно использовать утилиты командной строки. В данном примере используется Windows-версия cURL с поддержкой SSL (HTTPS):curl.exe ^ --verbose ^ --cacert cacert-kabinet_pecom_ru.pem ^ --basic ^ --user user:FA21831AB83DB72D3261FA80BA309DBF6B2D7ADC ^ --request POST -d @curl-input.txt ^ --header "Content-Type: application/json; charset=utf-8" ^ --compressed ^ --output curl-output.txt ^ https://kabinet.pecom.ru/api/v1/cargos/status/
Символ ^
используется для объединения строк. Файл cacert-kabinet_pecom_ru.pem
содержит сертификаты и доступен в комплекте PHP SDK.
Содержимое запроса берётся из файла curl-input.txt
(кодировка UTF-8), описание формата параметров доступно на соответствующей странице:
{ "cargoCodes": [ "780339690775", "999932277461", "772193116238" ] }Результат будет записан в файл
curl-output.txt
.
Обработка для 1С:Предприятия 8.1-8.3 (обычные формы)
В архиве, доступном для скачивания представлена внешняя обработка, позволяющая:
- получить статус одного или нескольких грузов
- оформить заявку на забор груза
- оформить заявку на предварительное оформление
В форме обработки необходимо указать логин личного кабинета, ключ и параметры для запроса.
Скачать версию для платформы 8.1-8.3 (обычные формы) (.zip, 170Кб)
Скачать инструкцию по работе с внешней обработкой
Также вы можете воспользоваться готовым модулем для 1С
Полезная информация на случай возникновения ошибки сертификата
Минимальный пример для .NET
В результате выполнения кода, приведённого ниже, будет осуществлён запрос статусов грузов и выведен результат в виде строки. Пример представляет собой консольное приложение на C#, целевая версия платформы — .NET Framework 3.5 и выше.
using System; using System.IO; using System.Net; using System.Text; using System.Web.Script.Serialization; namespace PecomApiDemo { class Program { static void Main(string[] args) { var login = "user"; var key = "11111111111111111122222222222222"; /* * Создание объекта запроса */ var httpRequest = (HttpWebRequest)WebRequest.Create("https://kabinet.pecom.ru/api/v1/cargos/status/"); /* * Настройка параметров запроса */ // Кодировка и тип содержимого httpRequest.ContentType = "application/json; charset=utf-8"; // Тип запроса httpRequest.Method = WebRequestMethods.Http.Post; // Включение поддержки сжатия httpRequest.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; /* * У реализации BASIC-авторизации в .NET есть особенности: * http://blog.cracca.com/2008/02/welcome.html * http://devproj20.blogspot.com/2008/02/assigning-basic-authorization-http.html * Из-за этого необходимо указать заголовок вручную */ byte[] credentialBuffer = new UTF8Encoding().GetBytes(login + ":" + key); httpRequest.Headers["Authorization"] = "Basic " + Convert.ToBase64String(credentialBuffer); try { /* * Подготовка содержимого запроса */ using (var sw = new StreamWriter(httpRequest.GetRequestStream())) { /* * Для сериализации/десериализации из/в JSON удобно использовать Json.NET * http://james.newtonking.com/projects/json-net.aspx (или в виде NuGet-пакета) * Эта библиотека поддерживает преобразование дат в ISO 8601 * Стандартные классы JavaScriptSerializer и DataContractSerializer * эту возможность не поддерживают */ var serializer = new JavaScriptSerializer(); var jsonData = new { cargoCodes = new string[] { "780339690775", "999932277461", "772193116238" } }; string json = serializer.Serialize(jsonData); sw.Write(json); } /* * Выполнение запроса */ var httpResponse = (HttpWebResponse)httpRequest.GetResponse(); /* * Получение результата запроса */ using (var sr = new StreamReader(httpResponse.GetResponseStream())) { var responseText = sr.ReadToEnd(); Console.WriteLine(responseText); } } catch (WebException ex) { using (StreamReader sr = new StreamReader(ex.Response.GetResponseStream())) { var responseText = sr.ReadToEnd(); Console.WriteLine(responseText); } } } } }
Минимальный пример на PHP
В результате выполнения кода, приведённого ниже, будет осуществлён запрос статусов грузов и выведен результат в виде десериализированного PHP-объекта. Важно отметить, что в примере осуществляется проверка сертификата сервера с помощью файла сертификатов из комплекта PHP SDK
Внимание:
Пример кода приведён для иллюстрации, в случае использования PHP для доступа к API, рекомендуется использовать PHP SDK
/* Минимальный пример работы с API Личного кабинета клиента «ПЭК» для PHP Требования: - PHP 5.2 и выше - Необходимые PHP-расширения: - curl (http://php.net/manual/ru/book.curl.php) - json (http://php.net/manual/ru/book.json.php) */ // Инициализация HTTP-клиента $ch = curl_init(); // Настройки HTTP-клиента curl_setopt_array($ch, array( CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_POST => TRUE, CURLOPT_SSL_VERIFYPEER => TRUE, CURLOPT_SSL_VERIFYHOST => 2, CURLOPT_CAINFO => dirname(__FILE__) . '/cacert-kabinet_pecom_ru.pem', CURLOPT_HTTPAUTH => CURLAUTH_BASIC, CURLOPT_ENCODING => 'gzip', CURLOPT_USERPWD => 'user:FA218354B83DB72D3261FA80BA309D5454ADC', CURLOPT_HTTPHEADER => array( 'Content-Type: application/json; charset=utf-8' ) )); // Данные для запроса $request_data = array( 'cargoCodes' => array( '780339690775', '999932277461', '772193116238' )); // Параметры конкретного запроса к API curl_setopt_array($ch, array( CURLOPT_URL => 'https://kabinet.pecom.ru/api/v1/cargos/status/', CURLOPT_POSTFIELDS => json_encode($request_data), )); // Выполнение запроса $result = curl_exec($ch); // Проверка на наличие ошибки if (curl_errno($ch)) { // Вывод сообщения об ошибке echo 'Ошибка: ' . curl_error($ch); } else { // Вывод результата в виде строки var_dump($result); // Вывод результатов в виде объекта $result_json = json_decode($result); var_dump($result_json); } // Освобождение ресурсов curl_close($ch);
PHP SDK
PHP SDK представляет собой класс, созданный чтобы упростить осуществление запросов к API из PHP-приложений и сайтов.
Состав архива:
cacert-kabinet_pecom_ru.pem
— файл сертификатовexample.php
— пример использованияpecom_kabinet.php
— файл класса, реализующего SDKREADME
— описание, история изменений
Скачать версию 1.2 от 10.07.2012 (.zip, 135Кб)
Скачать файл PEM (цепочка сертификатов) (.zip, 6Кб)
Пример использования
// Подключение файла с классом require_once('pecom_kabinet.php'); // Создание экземпляра класса $sdk = new PecomKabinet('user', 'FA218354B83DB72D3261FA80BA309D5454ADC'); // Вызов метода $result = $sdk->call('cargos', 'status', array('cargoCodes' => array( '780339690775', '999932277461', '772193116238' ) )); // Вывод результата var_dump($result); // Освобождение ресурсов $sdk->close();
Подключение через proxy-сервер
// Подключение файла с классом require_once('pecom_kabinet.php'); // Создание экземпляра класса $sdk = new PecomKabinet('user', 'FA218354B83DB72D3261FA80BA309D5454ADC', array( // Параметры proxy-серерва CURLOPT_PROXY => '127.0.0.1', CURLOPT_PROXYPORT => 8888, CURLOPT_PROXYTYPE => 'HTTP' )); // Вызов метода $result = $sdk->call('cargos', 'status', array('cargoCodes' => array( '780339690775', '999932277461', '772193116238' ) )); // Вывод результата var_dump($result); // Освобождение ресурсов $sdk->close();