magdv / kontur-logistics
Kontur.Logistics API implementation
1.0.14
2026-04-15 13:20 UTC
Requires
- php: >=8.0
- ext-curl: *
- ext-json: *
- ext-simplexml: *
- jms/serializer: ^3.21
- nyholm/psr7: ^1.5
- php-http/multipart-stream-builder: ^1.2
- psr/http-client: ^1.0
Requires (Dev)
- ext-dom: *
- guzzlehttp/guzzle: ^7.5
- overtrue/phplint: ^2.0
- phpunit/phpunit: ^8.5
- ramsey/uuid: 4.2
- rector/rector: ^2.2
- squizlabs/php_codesniffer: ^3.5
- vimeo/psalm: ^3.8
This package is auto-updated.
Last update: 2026-04-15 13:23:48 UTC
README
Внимание!!!
Библиотека пока активно редактируется и могут быть несовместимые изменения. Учтите этот момент.
Пример отправки ТРН
Надо сделать свой локальный класс для сериализатора declare(strict_types=1); use GuzzleHttp\Client; use MagDv\Logistics\ClientConfig; class LocalConfig extends ClientConfig { public function getCachePath(): ?string { return 'dfdf/df/df/df'; // здесь указываем путь, куда кешируем. Не обязательно, но желательно. Влияет на скорость } public function getIsDebug(): bool { return false; // тут надо указать, включать ли дебаг в дев режиме можете включить, чтобы видеть ошибки } public function getUrl(): string { return 'URL к апи'; } public function getApiKey(): string { return 'apiKey'; } public function getClient(): HttpClientInterface { // PSR-18 совместимый клиент return new Client(); } } $request = new SendWaybillRequest(); $request->waybill = 'xml content'; $request->waybillFileName = 'name.xml'; $request->waybillSignFileName = 'sign_name.sig'; $request->waybillSign = 'sig_content'; $logistics = new LogisticsDocuments(new LocalConfig()); $response = $logistics->sendWaybill($request); // Текущий статус ответа echo $response->statusCode; // Проверка, что удачный запрос echo $response->isOk(); // Проверка статуса и вывод ошибки if (!$response->isOk()) { echo $response->error->message; } $response->transportationId;
Сделаны и протестированы методы
Минтранс
GET v1/mintransgateway/uuid
Документы (Транспортные накладные)
POST v1/documents/waybill— Отправка ТРНPOST v1/documents/waybill/draft— Черновик документа
Перевозки
GET v1/transportations— Список перевозокGET v1/transportations/{id}— Информация о перевозкеGET v1/transportations/{id}/print-form— Печатная форма ТРНGET v1/transportations/{id}/titles/{titleId}— Титул грузополучателяGET v1/transportations/{id}/full-docflow— Полный документооборот перевозкиPUT v1/transportations/{id}/archive— Архивация/разархивация перевозкиPOST v1/transportations/documents/draft— Черновик документов для перевозки
Организации
GET v1/organizations/requisites— Реквизиты организации
Работа с ошибками
Класс Error содержит метод getAllErrorMessagesByJsonString(), который возвращает полный список ошибок в JSON-формате:
if (!$response->isOk()) { // Отдельное сообщение echo $response->error->message; // Все ошибки в JSON echo $response->error->getAllErrorMessagesByJsonString(); }