1. Go to this page and download the library: Download lapaygroup/fivepost-sdk library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
lapaygroup / fivepost-sdk example snippets
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) {
// Обработка исключения
}
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
$log = new Logger('name');
$log->pushHandler(new StreamHandler('log.txt', Logger::INFO));
$Client = new LapayGroup\FivePostSdk\Client('api-key', 60, \LapayGroup\FivePostSdk\Client::API_URI_TEST);
$Client->setLogger($log);
$jwt = $Client->getJwt(); // $jwt = eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJPcGVuQVBJIiwiYXVkIjoiQTEyMjAxOSEiLCJhcGlrZXkiOiJBSlMxU0lTRHJrNmRyMFpYazVsZVQxdFBGZDRvcXNIYSIsImlzcyI6InVybjovL0FwaWdlZSIsInBhcnRuZXJJZCI6ImIyNzNlYzQ0LThiMDAtNDliMS04OWVlLWQ4Njc5NjMwZDk0OCIsImV4cCI6MTU5NzA4OTk1OCwiaWF0IjoxNTk3MDg2MzU4LCJqdGkiOiI4YTIyZmUzNy1mMzc0LTQ0NDctOGMzMC05N2ZiYjJjOGQ3MTkifQ.G_XQ6vdk7bXfIeMJer7z5WUFqnwlp0qUt6RxaCINZt3b97ZUwPMI1-1FNKQhFwmCHJGpTYyBJKHgtY3uJZOWDAszjPMIHrQrcnJLSzJisNiy6z3cMbpf-UgD-RgebuaYyEgZ81rekL5aUN6r5rqWHbxcxEGY22lTy9uEWwxF_-UdVLEW9O9Z9M9IMlL5_7ACVu-ID2n6zFk_QJnEumJcBSqb6JFh2TWvUPnjnUt5AOiD7gNRXKsBvoC6InSfGoMA461cxu-rAazhNq5fkqFSdrIUyz0kvAb3UI4hs_6xJy9tXPpXIQY7LQUZqQGp5BT8pasfhAJ_4CCATbqxIHmY9w
$result = \LapayGroup\FivePostSdk\Jwt::decode($jwt);
$Client = new LapayGroup\FivePostSdk\Client('api-key', 60, \LapayGroup\FivePostSdk\Client::API_URI_TEST);
// Тариф за возврат невыкупленных отправлений и обработку и возврат отмененных отправлений
$Client->setReturnPercent(0.5); // 50%
// Сбор за объявленную ценность
$Client->setValuatedAmountPercent(0.005); // 0.5%
// Вознаграждение за прием платежа с использованием банковских карт
$Client->setCardPercent(0.0264); // 2.64%
// Вознаграждение за прием наложенного платежа наличными
$Client->setCashPercent(0.0192); // 1.92%
$Client = new LapayGroup\FivePostSdk\Client('api-key', 60, \LapayGroup\FivePostSdk\Client::API_URI_TEST);
// Доставка в 1 тарифную зону весом 1 кг, предоплаченная, невозвратная
$tariff = $Client->calculationTariff(1, 1000, 0, \LapayGroup\FivePostSdk\Entity\Order::P_TYPE_PREPAYMENT, false);
// Доставка в 1 тарифную зону весом 4 кг, предоплаченная, невозвратная
$tariff = $Client->calculationTariff(1, 4000, 0, \LapayGroup\FivePostSdk\Entity\Order::P_TYPE_PREPAYMENT, false);
// Доставка в 1 тарифную зону весом 4 кг, предоплаченная, c возвратом в случае невыкупа
$tariff = $Client->calculationTariff(1, 4000, 0, \LapayGroup\FivePostSdk\Entity\Order::P_TYPE_PREPAYMENT, true);
// Доставка в 1 тарифную зону весом 2 кг, стоимостью 1000 рублей, невозвратная, оплата наличными
$tariff = $Client->calculationTariff(1, 2000, 1000, \LapayGroup\FivePostSdk\Entity\Order::P_TYPE_CASH, false);
// Доставка в 1 тарифную зону весом 2 кг, стоимостью 1000 рублей, невозвратная, оплата картой
$tariff = $Client->calculationTariff(1, 2000, 1000, \LapayGroup\FivePostSdk\Entity\Order::P_TYPE_CASHLESS, false);
/*
array (
[price] => 1000.89 // float стоимость доставки в рублях
[delivery_days] => 6 // int количество дней
)
*/
try {
$Client = new LapayGroup\FivePostSdk\Client('api-key', 60, \LapayGroup\FivePostSdk\Client::API_URI_TEST);
$warehouse = new \LapayGroup\FivePostSdk\Entity\Warehouse();
$warehouse->setId('WH001');
$warehouse->setName('Склад ООО Ромашка');
$warehouse->setCountryId('RU');
$warehouse->setRegionCode(77);
$warehouse->setFederalDistrict('Москва');
$warehouse->setRegion('Москва');
$warehouse->setZipCode(111024);
$warehouse->setCity('Москва');
$warehouse->setStreet('ул. 5 Кабельная');
$warehouse->setHouse('1');
$warehouse->setLatitude('55.123456');
$warehouse->setLongitude('37.123456');
$warehouse->setPhone('+74951234567');
$warehouse->setTimeZone('+03:00');
for ($i = 1; $i < 6; $i++) {
$workDay = new \LapayGroup\FivePostSdk\Entity\WorkingDay();
$workDay->setDay($i); // 1 - понедельник, 7 - воскресенье
$workDay->setTimeFrom('08:00:00');
$workDay->setTimeTill('17:00:00');
$warehouse->setWorkingDay($workDay);
}
$result = $Client->addWarehouses([$warehouse->asArr()]);
/** Успешный ответ
Array
(
[0] => Array
(
[id] => 485cee56-a0e8-306b-ffc0-93bed958307a
[status] => OK
[description] =>
)
)
**/
/** Ответ при ошибке
Array
(
[0] => Array
(
[id] => ab58e4de-8bc8-0c2e-ac07-4ab458cca5a3
[status] => FAILED
[description] => Склад с таким идентификатором уже существует (partnreLocationId = 123456)
)
)
**/
}
catch (LapayGroup\FivePostSdk\Exceptions\FivePostException $e) {
// Обработка ошибки вызова API 5post
// $e->getMessage(); // текст ошибки
// $e->getCode(); // http код ответа сервиса 5post или код ошибки при наличии узла error в ответе
// $e->getRawResponse(); // ответ сервера 5post как есть (http request body)
}
catch (\Exception $e) {
// Обработка исключения
}
try {
$Client = new LapayGroup\FivePostSdk\Client('api-key', 60, \LapayGroup\FivePostSdk\Client::API_URI_TEST);
$Order = new \LapayGroup\FivePostSdk\Entity\Order();
$Order->setId('1234567892');
$Order->setCompanyName('Ромашка');
$Order->setNumber('ORD-123456');
$Order->setFio('Иванов Иван Иванович');
$Order->setPhone('89260120934');
$Order->setEmail('[email protected]');
$Order->setPaymentValue(0);
$Order->setPaymentCur('RUB');
$Order->setPaymentType(\LapayGroup\FivePostSdk\Entity\Order::P_TYPE_PREPAYMENT);
$Order->setPrice(1000);
$Order->setPriceCur('RUB');
$Order->setPvzId('00598559-f57b-4e23-9891-0d6f60bc455c');
$Order->setWarehouseId('WH001');
$Order->setShipmentDate(new DateTime('2020-08-15'));
$Order->setUndeliverableOption(\LapayGroup\FivePostSdk\Entity\Order::UNDELIVERED_RETURN);
$Place = new \LapayGroup\FivePostSdk\Entity\Place();
$Place->setBarcode('32270000000001');
$Place->setId('11300000294');
$Place->setPrice(1000);
$Place->setVatRate(20);
$Place->setCurrency('RUB');
$Place->setHeight(20);
$Place->setLength(130);
$Place->setWidth(60);
$Place->setWeight(100000);
$item = new \LapayGroup\FivePostSdk\Entity\Item();
$item->setBarcode('32270000000001');
$item->setQuantity(1);
$item->setCodeGtg('1020911016032000003592');
$item->setName('Силиконовый чехол для iPhone XS');
$item->setPrice(1000);
$item->setCurrency('RUB');
$item->setVatRate(20);
$item->setArticul('978-5-00154-080-9');
$Place->setItem($item);
$Order->setPlace($Place);
$result = $Client->createOrdersV1([$Order]); // Создание заказов без мест V1
$result = $Client->createOrders([$Order]); // Создание многоместных заказов V3
/** Успешный ответ
Array
(
[0] => Array
(
[orderId] => 12854f88-1b9c-435c-85ba-c2e345b9f891
[senderOrderId] => 1234567890
[cargoes] => Array
(
[0] => Array
(
[cargoId] => 048e260e-b0a9-42dd-974e-ebe5d72e0ace
[senderCargoId] => 11300000294
[barcode] => 32270000000001
)
)
[alreadyCreated] =>
)
)
**/
/** Ответ при ошибке
Array
(
[success] =>
[errorCode] => 400
[errorMsg] => Element partnerOrder[0].shipmentDate has incorrect value
)
**/
}
catch (LapayGroup\FivePostSdk\Exceptions\FivePostException $e) {
// Обработка ошибки вызова API 5post
// $e->getMessage(); // текст ошибки
// $e->getCode(); // http код ответа сервиса 5post или код ошибки при наличии узла error в ответе
// $e->getRawResponse(); // ответ сервера 5post как есть (http request body)
}
catch (\Exception $e) {
// Обработка исключения
}
try {
$Client = new LapayGroup\FivePostSdk\Client('api-key', 60, \LapayGroup\FivePostSdk\Client::API_URI_TEST);
// По ID заказа в системе клиента
$result = $Client->getOrdersStatusByOrderId(['1234567891']);
// По ID заказа в системе 5post
$result = $Client->getOrdersStatusByVendorId(['12854f88-1b9c-435c-85ba-c2e345b9f891']);
foreach ($result as $status) {
// Проверка на конечный статусы
if (\LapayGroup\FivePostSdk\Enum\OrderStatus::isFinal($status['executionStatus'])) {
// TODO логика обработки конечного статуса, после которого запрос статусов не требуется
}
// Получение текстового описания статуса
$status_text = \LapayGroup\FivePostSdk\Enum\OrderStatus::getNameByCode($status['status']);
$exstatus_text = \LapayGroup\FivePostSdk\Enum\OrderStatus::getNameByCode($status['executionStatus']);
}
/** Пример ответа 1
Array
(
[0] => Array
(
[orderId] => c1ba069d-a1aa-49ae-a562-3dca429823f4
[senderOrderId] => 1234567891
[status] => NEW
[changeDate] => 2020-08-10T13:12:42.414673+03:00
[executionStatus] => CREATED
)
)
Пример ответа 2
Array
(
[0] => Array
(
[status] => REJECTED
[orderId] => c1ba069d-a1aa-49ae-a562-3dca429823f4
[senderOrderId] => 1234567891
[executionStatus] => REJECTED: Ошибка валидации по плановым ВГХ
[changeDate] => 2020-08-10T13:12:43.31964+03:00
)
)
Пример ответа 3
Array
(
[0] => Array
(
[status] => REJECTED
[orderId] => 12854f88-1b9c-435c-85ba-c2e345b9f891
[senderOrderId] => 1234567890
[executionStatus] => REJECTED: PickupPointDto is null with id = 13e9d62d-1799-4e14-a27b-d218f33de7f6
[changeDate] => 2020-08-10T12:39:12.933568+03:00
)
)
**/
}
catch (LapayGroup\FivePostSdk\Exceptions\FivePostException $e) {
// Обработка ошибки вызова API 5post
// $e->getMessage(); // текст ошибки
// $e->getCode(); // http код ответа сервиса 5post или код ошибки при наличии узла error в ответе
// $e->getRawResponse(); // ответ сервера 5post как есть (http request body)
}
catch (\Exception $e) {
// Обработка исключения
}
try {
$Client = new LapayGroup\FivePostSdk\Client('api-key', 60, \LapayGroup\FivePostSdk\Client::API_URI_TEST);
// По ID заказа в системе клиента
$result = $Client->getOrderStatusesByOrderId('1234567891');
// По ID заказа в системе 5post
$result = $Client->getOrderStatusesByVendorId('12854f88-1b9c-435c-85ba-c2e345b9f891');
foreach ($result as $status) {
// Проверка на конечный статусы
if (\LapayGroup\FivePostSdk\Enum\OrderStatus::isFinal($status['executionStatus'])) {
// TODO логика обработки конечного статуса, после которого запрос статусов не требуется
}
// Получение текстового описания статуса
$status_text = \LapayGroup\FivePostSdk\Enum\OrderStatus::getNameByCode($status['status']);
$exstatus_text = \LapayGroup\FivePostSdk\Enum\OrderStatus::getNameByCode($status['executionStatus']);
}
/**
Array
(
[0] => Array
(
[orderId] => c1ba069d-a1aa-49ae-a562-3dca429823f4
[senderOrderId] => 1234567891
[status] => REJECTED
[changeDate] => 2020-08-10T13:12:43.31964+03:00
[executionStatus] => REJECTED: PICKUP_POINT_SIZE_VALIDATION
)
[1] => Array
(
[orderId] => c1ba069d-a1aa-49ae-a562-3dca429823f4
[senderOrderId] => 1234567891
[status] => REJECTED
[changeDate] => 2020-08-10T13:12:43.31447+03:00
[executionStatus] => CREATED: PICKUP_POINT_SIZE_VALIDATION
)
[2] => Array
(
[orderId] => c1ba069d-a1aa-49ae-a562-3dca429823f4
[senderOrderId] => 1234567891
[status] => NEW
[changeDate] => 2020-08-10T13:12:42.414673+03:00
[executionStatus] => CREATED
)
)
**/
// По списку ID заказа в системе 5post
$result = $Client->getOrderStatusesByListVendorId(['e04be1eb-6ebf-47a6-9069-4b41befd69ec', '951db785-3044-4f74-b008-fafa94c2658c']);
// По списку ID заказа в системе клиента
$result = $Client->getOrderStatusesByListOrderIds(['2207773', '2207765']);
foreach ($result as $i => $order) {
foreach ($order['statuses'] as $status) {
// Проверка на конечный статусы
if (\LapayGroup\FivePostSdk\Enum\OrderStatus::isFinal($status['executionStatus'])) {
// TODO логика обработки конечного статуса, после которого запрос статусов не требуется
}
// Получение текстового описания статуса
$status_text = \LapayGroup\FivePostSdk\Enum\OrderStatus::getNameByCode($status['status']);
$exstatus_text = \LapayGroup\FivePostSdk\Enum\OrderStatus::getNameByCode($status['executionStatus']);
}
}
/**
* Array
(
[0] => Array
(
[orderId] => 951db785-3044-4f74-b008-fafa94c2658c
[senderOrderId] => 2207773
[statuses] => Array
(
[0] => Array
(
[changeDate] => 2021-12-13T14:54:14.788767+03:00
[status] => NEW
[executionStatus] => APPROVED
)
[1] => Array
(
[changeDate] => 2021-12-13T14:54:13.795966+03:00
[status] => NEW
[executionStatus] => CREATED
)
[2] => Array
(
[changeDate] => 2021-12-13T14:54:15.917899+03:00
[status] => APPROVED
[executionStatus] => APPROVED
)
)
)
[1] => Array
(
[orderId] => e04be1eb-6ebf-47a6-9069-4b41befd69ec
[senderOrderId] => 2207765
[statuses] => Array
(
[0] => Array
(
[changeDate] => 2021-12-13T14:54:14.516638+03:00
[status] => NEW
[executionStatus] => CREATED
)
[1] => Array
(
[changeDate] => 2021-12-13T14:54:16.530297+03:00
[status] => NEW
[executionStatus] => APPROVED
)
[2] => Array
(
[changeDate] => 2021-12-13T14:54:17.846835+03:00
[status] => APPROVED
[executionStatus] => APPROVED
)
)
)
)
*/
}
catch (LapayGroup\FivePostSdk\Exceptions\FivePostException $e) {
// Обработка ошибки вызова API 5post
// $e->getMessage(); // текст ошибки
// $e->getCode(); // http код ответа сервиса 5post или код ошибки при наличии узла error в ответе
// $e->getRawResponse(); // ответ сервера 5post как есть (http request body)
}
catch (\Exception $e) {
// Обработка исключения
}
try {
$Client = new LapayGroup\FivePostSdk\Client('api-key', 60, \LapayGroup\FivePostSdk\Client::API_URI_TEST);
// По списку ID заказов в системе клиента
$result = $Client->getReceiptsByListOrderIds(['1234567891']);
// По списку ID заказов в системе 5post
$result = $Client->getReceiptsByListVendorIds(['55c9c98f-0b0d-4dbc-af9e-20cffa31eeaa']);
/**
Array (
[0] => Array (
[orderId] => 55c9c98f-0b0d-4dbc-af9e-20cffa31eeaa
[senderOrderId] => 2229829
[clientOrderId] => 2218386
[receipts] => Array
(
[0] => Array
(
[receiptDate] => 2022-03-25T11:43:15.032252+03:00
[receiptAmount] => 2140
[receiptType] => FULL_PAYMENT
[fiscalNumber] => 9960440300516976
[fiscalDocument] => 2959
[fiscalAttribute] => 363421806
[receiptUrl] => https://ofd.beeline.ru/check-order?fn={FN}&fp={FP}&fd={FD}
[payments] => Array
(
[0] => Array
(
[amount] => 2140
[type] => ITEM_PAYMENT
[method] => CARD
)
)
)
)
)
*/
}
catch (LapayGroup\FivePostSdk\Exceptions\FivePostException $e) {
// Обработка ошибки вызова API 5post
// $e->getMessage(); // текст ошибки
// $e->getCode(); // http код ответа сервиса 5post или код ошибки при наличии узла error в ответе
// $e->getRawResponse(); // ответ сервера 5post как есть (http request body)
}
catch (\Exception $e) {
// Обработка исключения
}
try {
$Client = new LapayGroup\FivePostSdk\Client('api-key', 60, \LapayGroup\FivePostSdk\Client::API_URI_TEST);
// По ID заказа в системе клиента
$result = $Client->getLabelsByListOrderIds(['1234567891']);
// По ID заказа в системе 5post
$result = $Client->getLabelsByListVendorIds(['12854f88-1b9c-435c-85ba-c2e345b9f891']);
}
catch (LapayGroup\FivePostSdk\Exceptions\FivePostException $e) {
// Обработка ошибки вызова API 5post
// $e->getMessage(); // текст ошибки
// $e->getCode(); // http код ответа сервиса 5post или код ошибки при наличии узла error в ответе
// $e->getRawResponse(); // ответ сервера 5post как есть (http request body)
}
catch (\Exception $e) {
// Обработка исключения
}
try {
$Client = new LapayGroup\FivePostSdk\Client('api-key', 60, \LapayGroup\FivePostSdk\Client::API_URI_TEST);
// По ID заказа в системе клиента
$result = $Client->removePaymentByListOrderIds(['1234567891']);
// По ID заказа в системе 5post
$result = $Client->removePaymentByListVendorIds(['12854f88-1b9c-435c-85ba-c2e345b9f891']);
/**
Array
(
[0] => Array
(
[orderId] => 12854f88-1b9c-435c-85ba-c2e345b9f891
[senderOrderId] => 1234567891
[success] => true
)
)
*/
}
catch (LapayGroup\FivePostSdk\Exceptions\FivePostException $e) {
// Обработка ошибки вызова API 5post
// $e->getMessage(); // текст ошибки
// $e->getCode(); // http код ответа сервиса 5post или код ошибки при наличии узла error в ответе
// $e->getRawResponse(); // ответ сервера 5post как есть (http request body)
}
catch (\Exception $e) {
// Обработка исключения
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.