PHPackages                             lapaygroup/fivepost-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. lapaygroup/fivepost-sdk

ActiveLibrary[API Development](/categories/api)

lapaygroup/fivepost-sdk
=======================

SDK для работы с API транспортной компании 5post (https://fivepost.ru)

0.6.3(8mo ago)62.3k↓21.5%2MITPHPPHP &gt;=5.5

Since Aug 8Pushed 8mo ago1 watchersCompare

[ Source](https://github.com/lapaygroup/fivepost-sdk)[ Packagist](https://packagist.org/packages/lapaygroup/fivepost-sdk)[ RSS](/packages/lapaygroup-fivepost-sdk/feed)WikiDiscussions master Synced yesterday

READMEChangelog (10)Dependencies (2)Versions (20)Used By (0)

[![](https://camo.githubusercontent.com/eb9d201c67f874068d07e85a2d08c5b4970f4346eb664827f7ab3ca43b4200fa/68747470733a2f2f6c6170617967726f75702e72752f696d672f6c6170617967726f75702e737667)](https://lapaygroup.ru/)[![](https://camo.githubusercontent.com/30a04cf28cd696c714c653ffe24f5fefc97f738b45d1fc3c9e1a7bb01584b4e5/68747470733a2f2f6c6170617967726f75702e72752f66697665706f73746c6f676f2e706e67)](http://fivepost.ru)

[![Latest Stable Version](https://camo.githubusercontent.com/67897c9ef52609ad73e2950d00fe2dc26ad7d89670894dc44c5fdcd41b907174/68747470733a2f2f706f7365722e707567782e6f72672f6c6170617967726f75702f66697665706f73742d73646b2f762f737461626c65)](https://packagist.org/packages/lapaygroup/fivepost-sdk)[![Total Downloads](https://camo.githubusercontent.com/8538c187b6c30e29e10da6758a8211ce17da9827759b479ac315097ea5503370/68747470733a2f2f706f7365722e707567782e6f72672f6c6170617967726f75702f66697665706f73742d73646b2f646f776e6c6f616473)](https://packagist.org/packages/lapaygroup/fivepost-sdk)[![License](https://camo.githubusercontent.com/dd92e95def3a1d2869da0ca157f28b2d6a4811d15b7a5376759607f992470822/68747470733a2f2f706f7365722e707567782e6f72672f6c6170617967726f75702f66697665706f73742d73646b2f6c6963656e7365)](https://packagist.org/packages/lapaygroup/fivepost-sdk)[![Telegram Chat](https://camo.githubusercontent.com/6c64eaea27c4997454191c28ef0343772d3dea8171200341c0d8410295eea8f9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f74656c656772616d2d636861742d626c75652e7376673f6c6f676f3d74656c656772616d)](https://t.me/phpboxberrysdk)

SDK для [интеграции с программным комплексом 5post](http://fivepost.ru).
========================================================================

[](#sdk-для-интеграции-с-программным-комплексом-5post)

Посмотреть все проекты или подарить автору кофе можно [тут](https://lapaygroup.ru/opensource).

[Документация к API](https://fivepost.ru/developers) 5post.

Содержание
==========

[](#содержание)

- [Changelog](#changelog)
- [Конфигурация](#configuration)
- [Отладка](#debugging)
- [Расчет тарифа](#tariffs)
- [Список точек выдачи](#pvz-list)
- [Создание склада](#create-warehouse)
- [Создание заказа](#create-order)
- [Отмена заказа](#cancel-order)
- [Статусы заказов](#orders-status)
- [История статусов заказа](#order-statuses)
- [Получение чеков](#receipts)
- [Получение этикетки](#order-labels)
- [Обнуление наложенного платежа](#np-zero)

Changelog
=========

[](#changelog)

- 0.6.2 - Добавлены зависимости guzzle ^7.0 и psr/log ^2.0|^3.0
- 0.6.1 - Обновлеты тарифы 5post для расчёта;
- 0.6.0 - Подробное описание [тут](https://github.com/lapaygroup/fivepost-sdk/releases/tag/0.6.0);
- 0.5.0 - Подробное описание [тут](https://github.com/lapaygroup/fivepost-sdk/releases/tag/0.5.0);
- 0.4.6 - Совместимость с Guzzle 7.3;
- 0.4.5 - Добавлен вывод неизвестного кода статуса в текст исключения. Добавлена заменя executionStatus, если там присутствует описание вместе с кодом;
- 0.4.4 - Совместимость с Guzzle 7.2;
- 0.4.3 - Совместимость с Guzzle 7.1;
- 0.4.2 - Совместимость с Guzzle 7;
- 0.4.1 - Исправлены ошибки в namespace файлов;
- 0.4.0 - Добавлена возможность сохранения JWT токена и создания своих классов для сохранения;
- 0.3.0 - Добавлен [Enum](https://github.com/lapaygroup/fivepost-sdk/blob/master/src/Enum/OrderStatus.php) статусов заказа, изменены функции работы с статусами заказов;
- 0.2.1 - Исправлена ошибка с обязательным заполнение налоговой ставки у места;
- 0.2.0 - Добавлен расчет тарифа;
- 0.1.3 - Исправление в composer.json;
- 0.1.2 - Исправление опечаток;
- 0.1.1 - Исправлена зависимость с Monolog;
- 0.1.0 - Первая Alfa-версия SDK.

Установка
=========

[](#установка)

Для установки можно использовать менеджер пакетов Composer

```
composer require lapaygroup/fivepost-sdk

```

Конфигурация
============

[](#конфигурация)

Для работы с API необходимо получить api-key у персонального менеджера при заключении договора.
По api-key необходимо получить токен в формате JWT и сохранить его. Токен живет 1 час с момента издания.

SDK позволяет сохранять JWT, для этого необходимо использовать Helper, который должен реализовывать [JwtSaveInterface](https://github.com/lapaygroup/fivepost-sdk/blob/master/src/Helpers/JwtSaveInterface.php).
В SDK встроен Helper для сохранения токена в временный файл [JwtSaveFileHelper](https://github.com/lapaygroup/fivepost-sdk/blob/master/src/Helpers/JwtSaveFileHelper.php).

```
try {
    // Инициализация API клиента по api-key с таймаутом ожидания ответа 60 секунд
    $Client = new LapayGroup\FivePostSdk\Client('api-key', 60, \LapayGroup\FivePostSdk\Client::API_URI_TEST);
    $jwt = $Client->getJwt(); // $jwt = eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJPcGVuQVBJIiwiYXVkIjoiQTEyMjAxOSEiLCJhcGlrZXkiOiJBSlMxU0lTRHJrNmRyMFpYazVsZVQxdFBGZDRvcXNIYSIsImlzcyI6InVybjovL0FwaWdlZSIsInBhcnRuZXJJZCI6ImIyNzNlYzQ0LThiMDAtNDliMS04OWVlLWQ4Njc5NjMwZDk0OCIsImV4cCI6MTU5NzA4OTk1OCwiaWF0IjoxNTk3MDg2MzU4LCJqdGkiOiI4YTIyZmUzNy1mMzc0LTQ0NDctOGMzMC05N2ZiYjJjOGQ3MTkifQ.G_XQ6vdk7bXfIeMJer7z5WUFqnwlp0qUt6RxaCINZt3b97ZUwPMI1-1FNKQhFwmCHJGpTYyBJKHgtY3uJZOWDAszjPMIHrQrcnJLSzJisNiy6z3cMbpf-UgD-RgebuaYyEgZ81rekL5aUN6r5rqWHbxcxEGY22lTy9uEWwxF_-UdVLEW9O9Z9M9IMlL5_7ACVu-ID2n6zFk_QJnEumJcBSqb6JFh2TWvUPnjnUt5AOiD7gNRXKsBvoC6InSfGoMA461cxu-rAazhNq5fkqFSdrIUyz0kvAb3UI4hs_6xJy9tXPpXIQY7LQUZqQGp5BT8pasfhAJ_4CCATbqxIHmY9w
    $result = \LapayGroup\FivePostSdk\Jwt::decode($jwt); // Получения информации из токена (payload)

    // Ранее полученный токен можно добавить в клиент специльным методом
    $Client->setJwt($jwt);

    // Токен можно сохранять в файл используя Helper
    $jwtHelper = new \LapayGroup\FivePostSdk\Helpers\JwtSaveFileHelper();
    // Можно задать путь до временного файла отличный от заданного по умолчанию
    $jwtHelper->setTmpFile('/tmp/saved_jwt.txt');

    $Client = new LapayGroup\FivePostSdk\Client('api-key', 60, \LapayGroup\FivePostSdk\Client::API_URI_TEST, $jwtHelper);
    $jwt = $Client->getJwt(); // $jwt = eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJPcGVuQVBJIiwiYXVkIjoiQTEyMjAxOSEiLCJhcGlrZXkiOiJBSlMxU0lTRHJrNmRyMFpYazVsZVQxdFBGZDRvcXNIYSIsImlzcyI6InVybjovL0FwaWdlZSIsInBhcnRuZXJJZCI6ImIyNzNlYzQ0LThiMDAtNDliMS04OWVlLWQ4Njc5NjMwZDk0OCIsImV4cCI6MTU5NzA4OTk1OCwiaWF0IjoxNTk3MDg2MzU4LCJqdGkiOiI4YTIyZmUzNy1mMzc0LTQ0NDctOGMzMC05N2ZiYjJjOGQ3MTkifQ.G_XQ6vdk7bXfIeMJer7z5WUFqnwlp0qUt6RxaCINZt3b97ZUwPMI1-1FNKQhFwmCHJGpTYyBJKHgtY3uJZOWDAszjPMIHrQrcnJLSzJisNiy6z3cMbpf-UgD-RgebuaYyEgZ81rekL5aUN6r5rqWHbxcxEGY22lTy9uEWwxF_-UdVLEW9O9Z9M9IMlL5_7ACVu-ID2n6zFk_QJnEumJcBSqb6JFh2TWvUPnjnUt5AOiD7gNRXKsBvoC6InSfGoMA461cxu-rAazhNq5fkqFSdrIUyz0kvAb3UI4hs_6xJy9tXPpXIQY7LQUZqQGp5BT8pasfhAJ_4CCATbqxIHmY9w

}

catch (\LapayGroup\FivePostSdk\Exceptions\FivePostException $e) {
    // Обработка ошибки вызова API 5post
    // $e->getMessage(); текст ошибки
    // $e->getCode(); http код ответа сервиса 5post
    // $e->getRawResponse(); // ответ сервера 5post как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}
```

Отладка
=======

[](#отладка)

Для логирования запросов и ответов используется [стандартный PSR-3 логгер](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md). Ниже приведен пример логирования используя [Monolog](https://github.com/Seldaek/monolog).```
