1. Go to this page and download the library: Download lapaygroup/russianpost 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 / russianpost example snippets
$CategoryList = new \LapayGroup\RussianPost\CategoryList();
$categoryList = $CategoryList->parseToArray();
$CategoryList = new \LapayGroup\RussianPost\CategoryList();
$CategoryList->setCategoryDelete([100,200,300]);
$categoryList = $CategoryList->parseToArray();
try {
$objectId = 23030; // Посылка онлайн обыкновенная
// Минимальный набор параметров для расчета стоимости отправления c доставкой
$params = [
'weight' => 600, // Вес в граммах
'sumoc' => 10000, // Сумма объявленной ценности в копейках
'from' => 109012, // Почтовый индекс места отправления
'to' => 115551
];
// Список ID дополнительных услуг
// 2 - Заказное уведомление о вручении
// 21 - СМС-уведомление о вручении
// 42 - Пакет СМС уведомлений получателю при единичном приеме
$services = [42];
$TariffCalculation = new \LapayGroup\RussianPost\TariffCalculation();
// Расчет с сроками доставки
$calcInfo = $TariffCalculation->calculate($objectId, $params, true, $services);
// Расчет без сроков доставки
$calcInfo = $TariffCalculation->calculate($objectId, $params, false, $services);
/*
LapayGroup\RussianPost\CalculateInfo Object
(
[version:LapayGroup\RussianPost\CalculateInfo:private] => 2.16.11.700
[categoryItemId:LapayGroup\RussianPost\CalculateInfo:private] => 23030
[categoryItemName:LapayGroup\RussianPost\CalculateInfo:private] => Посылка онлайн обыкновенная
[weight:LapayGroup\RussianPost\CalculateInfo:private] => 600
[transportationID:LapayGroup\RussianPost\CalculateInfo:private] =>
[transportationName:LapayGroup\RussianPost\CalculateInfo:private] => Наземно
[pay:LapayGroup\RussianPost\CalculateInfo:private] => 118.00
[payNds:LapayGroup\RussianPost\CalculateInfo:private] => 141.60
[payMark:LapayGroup\RussianPost\CalculateInfo:private] => 0
[ground:LapayGroup\RussianPost\CalculateInfo:private] => 118.00
[groundNds:LapayGroup\RussianPost\CalculateInfo:private] => 141.60
[cover:LapayGroup\RussianPost\CalculateInfo:private] => 0
[coverNds:LapayGroup\RussianPost\CalculateInfo:private] => 0
[service:LapayGroup\RussianPost\CalculateInfo:private] => 0
[serviceNds:LapayGroup\RussianPost\CalculateInfo:private] => 0
[deliveryPeriodMin:LapayGroup\RussianPost\CalculateInfo:private] => 1
[deliveryPeriodMax:LapayGroup\RussianPost\CalculateInfo:private] => 1
[deliveryDeadLine:LapayGroup\RussianPost\CalculateInfo:private] => DateTime Object
(
[date] => 2024-02-19 20:00:00.000000
[timezone_type] => 3
[timezone] => UTC
)
[tariffList:LapayGroup\RussianPost\CalculateInfo:private] => Array
(
[0] => LapayGroup\RussianPost\Tariff Object
(
[id:LapayGroup\RussianPost\Tariff:private] => 3062
[name:LapayGroup\RussianPost\Tariff:private] => Плата за доставку посылки онлайн
[value:LapayGroup\RussianPost\Tariff:private] => 118.00
[valueNds:LapayGroup\RussianPost\Tariff:private] => 141.60
[valueMark:LapayGroup\RussianPost\Tariff:private] => 0.00
)
)
)
*/
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostTarrificatorException $e) {
// Обработка ошибок тарификатора
$errors = $e->getErrors(); // Массив вида [['msg' => 'текст ошибки', 'code' => код ошибки]]
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
$log = new Logger('name');
$log->pushHandler(new StreamHandler('log.txt', Logger::INFO));
// Логирование расчета тарифа
$tariffCalculation = new \LapayGroup\RussianPost\TariffCalculation();
$tariffCalculation->setLogger($log);
$res = $tariffCalculation->calculate(23030, ['from' => 101000, 'to' => 101000, 'weight' => 100, 'sumoc' => 0]);
// Логирования API отправки
$otpravkaApi = new \LapayGroup\RussianPost\Providers\OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$otpravkaApi->setLogger($log);
$addressList = new \LapayGroup\RussianPost\AddressList();
$addressList->add('115551 Кширское шоссе 94-1, 1');
$result = $otpravkaApi->clearAddress($addressList);
// Логирование API трекинга
$config['auth']['tracking']['login'] = 'login';
$config['auth']['tracking']['password'] = 'password';
$Tracking = new \LapayGroup\RussianPost\Providers\Tracking('single', $config);
$Tracking->setLogger($log);
$result = $Tracking->getOperationsByRpo('10944022440321');
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\Tracking;
$Tracking = new Tracking('single', Yaml::parse(file_get_contents('path_to_config.yaml')));
$result = $Tracking->getOperationsByRpo('10944022440321');
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\Tracking;
$Tracking = new Tracking('single', Yaml::parse(file_get_contents('path_to_config.yaml')));
$result = $Tracking->getNpayInfo('10944022440321');
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\Tracking;
$Tracking = new Tracking('pack', Yaml::parse(file_get_contents('path_to_config.yaml')));
$result = $Tracking->getTickets(['10944022440321', '11172522364055', '10944022490302']);
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\Tracking;
$Tracking = new Tracking('pack', Yaml::parse(file_get_contents('path_to_config.yaml')));
$result = $Tracking->getOperationsByTicket('20180506151902355WANVOUGROWKXUN');
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
try {
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$addressList = new \LapayGroup\RussianPost\AddressList();
$addressList->add('115551 Кширское шоссе 94-1, 1');
$result = $otpravkaApi->clearAddress($addressList);
/*
Array
(
[0] => Array
(
[address-type] => DEFAULT
[corpus] => 1
[house] => 94
[id] => 0
[index] => 115551
[original-address] => 115551 Кширское шоссе 94-1, 1
[place] => г. Москва
[quality-code] => GOOD
[region] => г. Москва
[room] => 1
[street] => шоссе Каширское
[validation-code] => VALIDATED
)
)
*/
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
try {
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$fioList = new \LapayGroup\RussianPost\FioList();
$fioList->add('Иванов Петр игоревич');
$result = $otpravkaApi->clearFio($fioList);
/*
Array
(
[0] => Array
(
[id] => 0
[middle-name] => Игоревич
[name] => Петр
[original-fio] => Иванов Петр игоревич
[quality-code] => EDITED
[surname] => Иванов
)
)
*/
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
try {
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$phoneList = new \LapayGroup\RussianPost\PhoneList();
$phoneList->add('9260120935');
$result = $otpravkaApi->clearPhone($phoneList);
/*
Array
(
[0] => Array
(
[id] => 0
[original-phone] => 9260120935
[phone-city-code] => 926
[phone-country-code] => 7
[phone-extension] =>
[phone-number] => 0120935
[quality-code] => GOOD
)
)
*/
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
$OtpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$list = $OtpravkaApi->shippingPoints();
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
use LapayGroup\RussianPost\ParcelInfo;
try {
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$parcelInfo = new ParcelInfo();
$parcelInfo->setIndexFrom($list[0]['operator-postcode']); // Индекс пункта сдачи из функции $OtpravkaApi->shippingPoints()
$parcelInfo->setIndexTo(644015);
$parcelInfo->setMailCategory('ORDINARY'); // https://otpravka.pochta.ru/specification#/enums-base-mail-category
$parcelInfo->setMailType('POSTAL_PARCEL'); // https://otpravka.pochta.ru/specification#/enums-base-mail-type
$parcelInfo->setWeight(1000);
$parcelInfo->setFragile(true);
$tariffInfo = $otpravkaApi->getDeliveryTariff($parcelInfo);
echo $tariffInfo->getTotalRate()/100 . ' руб.';
/*
LapayGroup\RussianPost\TariffInfo Object
(
[totalRate:LapayGroup\RussianPost\TariffInfo:private] => 30658
[totalNds:LapayGroup\RussianPost\TariffInfo:private] => 6132
[aviaRate:LapayGroup\RussianPost\TariffInfo:private] => 0
[aviaNds:LapayGroup\RussianPost\TariffInfo:private] => 0
[deliveryMinDays:LapayGroup\RussianPost\TariffInfo:private] => 1
[deliveryMaxDays:LapayGroup\RussianPost\TariffInfo:private] => 3
[fragileRate:LapayGroup\RussianPost\TariffInfo:p rivate] => 7075
[fragileNds:LapayGroup\RussianPost\TariffInfo:private] => 1415
[groundRate:LapayGroup\RussianPost\TariffInfo:private] => 30658
[groundNds:LapayGroup\RussianPost\TariffInfo:private] => 6132
[insuranceRate:LapayGroup\RussianPost\TariffInfo:private] => 0
[insuranceNds:LapayGroup\RussianPost\TariffInfo:private] => 0
[noticeRate:LapayGroup\RussianPost\TariffInfo:private] => 0
[noticeNds:LapayGroup\RussianPost\TariffInfo:private] => 0
[oversizeRate:LapayGroup\RussianPost\TariffInfo:private] => 0
[oversizeNds:LapayGroup\RussianPost\TariffInfo:private] => 0
)
*/
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
use LapayGroup\RussianPost\ParcelInfo;
try {
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$parcelInfo = new ParcelInfo();
$parcelInfo->setIndexFrom($list[0]['operator-postcode']); // Индекс пункта сдачи из функции $OtpravkaApi->shippingPoints()
$parcelInfo->setMailCategory('ORDINARY'); // https://otpravka.pochta.ru/specification#/enums-base-mail-category
$parcelInfo->setWeight(1000);
$parcelInfo->setFragile(true);
// Параметры только для ЕКОМ
$parcelInfo->setMailType('ECOM'); // Вид РПО ЕКОМ https://otpravka.pochta.ru/specification#/enums-base-mail-type
$parcelInfo->setDeliveryPointindex(644015); // Вместо индекса назначения указывается индекс ПВЗ
$parcelInfo->setEntriesType('SALE_OF_GOODS'); // Категория вложения https://otpravka.pochta.ru/specification#/enums-base-entries-type
$parcelInfo->setFunctionalityChecking(true); // Признак услуги проверки работоспособности
$parcelInfo->setGoodsValue(1588000); // Стоимость
$parcelInfo->setWithFitting(true); // Признак услуги 'Возможность примерки'
$tariffInfo = $otpravkaApi->getDeliveryTariff($parcelInfo);
echo $tariffInfo->getTotalRate()/100 . ' руб.';
/*
LapayGroup\RussianPost\TariffInfo Object
(
[functionalityCheckingRate:LapayGroup\RussianPost\TariffInfo:private] => 30658
[functionalityCheckingNds:LapayGroup\RussianPost\TariffInfo:private] => 6132
[withFittingRate:LapayGroup\RussianPost\TariffInfo:private] => 0
[withFittingNds:LapayGroup\RussianPost\TariffInfo:private] => 0
)
*/
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
try {
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$result = $otpravkaApi->getBalance();
/*
Array
(
[balance] => 0
[balance-date] => 2019-06-21
[work-with-balance] => 1
)
*/
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$recepient = new \LapayGroup\RussianPost\Entity\Recipient();
$recepient->setAddress('650905 ЯГУНОВСКИЙ, КЕМЕРОВСКАЯ ОБЛАСТЬ, УЛ БЕЛОЗЕРНАЯ, ДОМ 21,КВ 1');
$recepient->setName('Иванов Петр Николаевич');
$recepient->setPhone('79260112367');
try {
$res = $otpravkaApi->untrustworthyRecipient($recepient);
/*
Array
(
[raw-address] => 650905 ЯГУНОВСКИЙ, КЕМЕРОВСКАЯ ОБЛАСТЬ, УЛ БЕЛОЗЕРНАЯ,ДОМ 21,КВ 1
[raw-full-name] => Иванов Петр Николаевич
[raw-telephone] => 79260112367
[unreliability] => RELIABLE
)
*/
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
// Обработка списка получателей
$recepients[0] = $recepient;
$recepients[1] = $recepient;
try {
$res = $otpravkaApi->untrustworthyRecipients($recepients);
/*
Array
(
[0] => Array
(
[raw-address] => 650905 ЯГУНОВСКИЙ, КЕМЕРОВСКАЯ ОБЛАСТЬ, УЛ БЕЛОЗЕРНАЯ,ДОМ 21,КВ 1
[raw-full-name] => Иванов Петр Николаевич
[raw-telephone] => 79260112367
[unreliability] => RELIABLE
),
[1] => Array
(
[raw-address] => 650905 ЯГУНОВСКИЙ, КЕМЕРåОВСКАЯ ОБЛАСТЬ, УЛ БЕЛОЗЕРНАЯ,ДОМ 21,КВ 1
[raw-full-name] => Иванов Петр Николаевич
[raw-telephone] => 79260112367
[unreliability] => RELIABLE
)
)
*/
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
use LapayGroup\RussianPost\Entity\Order;
try {
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$orders = [];
$order = new Order();
$order->setIndexTo(115551);
$order->setPostOfficeCode(109012);
$order->setGivenName('Иван');
$order->setHouseTo('92');
$order->setCorpusTo('3');
$order->setMass(1000);
$order->setOrderNum('2');
$order->setPlaceTo('Москва');
$order->setRecipientName('Иванов Иван');
$order->setRegionTo('Москва');
$order->setStreetTo('Каширское шоссе');
$order->setRoomTo('1');
$order->setSurname('Иванов');
$orders[] = $order->asArr();
$result = $otpravkaApi->createOrders($orders);
// Успешный ответ
/*Array
(
[result-ids] => Array
(
[0] => 115322331
)
)
*/
// Ответ с ошибкой
/*Array
(
[errors] => Array
(
[0] => Array
(
[error-codes] => Array
(
[0] => Array
(
[code] => EMPTY_INDEX_TO
[description] => Почтовый индекс не указан
)
)
[position] => 0
)
)
)*/
}
catch (\InvalidArgumentException $e) {
// Обработка ошибки заполнения параметров
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
use LapayGroup\RussianPost\Entity\Order;
try {
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$orders = [];
$order = new Order();
$order->setIndexTo(115551);
$order->setPostOfficeCode(109012);
$order->setGivenName('Иван');
$order->setHouseTo('92');
$order->setCorpusTo('3');
$order->setMass(1000);
$order->setOrderNum('2');
$order->setPlaceTo('Москва');
$order->setRecipientName('Иванов Иван');
$order->setRegionTo('Москва');
$order->setStreetTo('Каширское шоссе');
$order->setRoomTo('1');
$order->setSurname('Иванов');
$orders[] = $order->asArr();
$result = $otpravkaApi->createOrdersV2($orders);
// Успешный ответ
/*Array
(
[orders] => Array
(
[barcode] => 80093053624992
[order-num] => 3
[result-id] => 310115153
)
)*/
// Ответ с ошибкой
/*Array
(
[errors] => Array
(
[0] => Array
(
[error-codes] => Array
(
[0] => Array
(
[code] => EMPTY_INDEX_TO
[description] => Почтовый индекс не указан
)
)
[position] => 0
)
)
)*/
}
catch (\InvalidArgumentException $e) {
// Обработка ошибки заполнения параметров
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
use LapayGroup\RussianPost\Entity\Order;
try {
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$order = new Order();
$order->setIndexTo(115551);
$order->setPostOfficeCode(109012);
$order->setGivenName('Иван');
$order->setHouseTo('92');
$order->setCorpusTo('3');
$order->setMass(1000);
$order->setOrderNum('333'); // Меняем внутренний номер заказа
$order->setPlaceTo('Москва');
$order->setRecipientName('Иванов Иван');
$order->setRegionTo('Москва');
$order->setStreetTo('Каширское шоссе');
$order->setRoomTo('1');
$order->setSurname('Иванов');
$result = $otpravkaApi->editOrder($order, 115322331);
// Успешный ответ
/*Array
(
[result-ids] => Array
(
[0] => 115322331
)
)
*/
// Ответ с ошибкой
/*Array
(
[error-codes] => Array
(
[0] => Array
(
[code] => EMPTY_INDEX_TO
[description] => Почтовый индекс не указан
)
)
[position] => 0
)*/
}
catch (\InvalidArgumentException $e) {
// Обработка ошибки заполнения параметров
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
try {
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$result = $otpravkaApi->deleteOrders([115322331]);
/*
Array Успешный ответ
(
[result-ids] => Array
(
[0] => 115322331
)
)
Array Ответ с ошибкой
(
[errors] => Array
(
[0] => Array
(
[error-code] => NOT_FOUND
[position] => 0
)
)
)*/
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
try {
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$result = $otpravkaApi->findOrderByShopId(1);
/*
Array
(
[0] => Array
(
[address-type-to] => DEFAULT
// По умолчанию выбран динамический ДТИ. Для изменения диапазона ДТИ нужно обратиться в службу поддержки Почты России
[barcode] => 80082240994512
[corpus-to] => 3
[delivery-time] => Array
(
[max-days] => 1
)
[given-name] => Иван
[ground-rate] => 16500
[ground-rate-with-vat] => 19800
[ground-rate-wo-vat] => 16500
[house-to] => 92
[id] => 115322331
[index-to] => 115551
[mail-category] => ORDINARY
[mail-direct] => 643
[mail-rank] => WO_RANK
[mail-type] => POSTAL_PARCEL
[manual-address-input] =>
[mass] => 1000
[mass-rate] => 16500
[mass-rate-with-vat] => 19800
[mass-rate-wo-vat] => 16500
[order-num] => 1
[payment-method] => CASHLESS
[place-to] => Москва
[postmarks] => Array
(
[0] => NONSTANDARD
)
[postoffice-code] => 109012
[recipient-name] => Иванов Иван
[region-to] => Москва
[room-to] => 1
[str-index-to] => 115551
[street-to] => Каширское шоссе
[surname] => Иванов
[total-rate-wo-vat] => 16500
[total-vat] => 3300
[transport-type] => SURFACE
[version] => 0
)
)*/
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
try {
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$result = $otpravkaApi->sendingF103form(28); // return boolean
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
try {
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$result = $otpravkaApi->generateDocCheckingAct(28, OtpravkaApi::PRINT_FILE);
// TODO если у Вас есть пример ответа, просьба приложить его через pull request :)
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
try {
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$result = $otpravkaApi->generateReturnLabel(123456, OtpravkaApi::PRINT_FILE, OtpravkaApi::PRINT_TYPE_PAPER);
// TODO если у Вас есть пример ответа, просьба приложить его через pull request :)
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
try {
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$result = $otpravkaApi->archivingBatch([25]);
/*
Array (
[0] => Array
(
[batch-name] => 25
)
)*/
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
try {
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$result = $otpravkaApi->unarchivingBatch([25]);
/*
Array Успешный ответ
(
[0] => Array
(
[batch-name] => 25
)
)
Array Ответ с ошибкой
(
[0] => Array
(
[batch-name] => 26
[error-code] => NOT_FOUND
)
)*/
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$result = $otpravkaApi->returnShipment(123456, \LapayGroup\RussianPost\Enum\MailType::UNDEFINED);
// Успешный ответ
/*Array
(
[return-barcode] => 1234567890 // ШПИ возвратного отправления
)
// Ответ с ошибкой
/*Array
(
[errors] => Array
(
[0] => Array
(
[code] => DIRECT_SHIPMENT_NOT_FOUND
[description] => Прямое отправление не найдено
)
)
)*/
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
try {
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$addressFrom = new \LapayGroup\RussianPost\Entity\AddressReturn();
$addressFrom->setAddressType(\LapayGroup\RussianPost\Enum\AddressType::DEFAULT);
$addressFrom->setIndex(125009);
$addressFrom->setPlace('Москва');
$addressFrom->setRegion('Москва');
$addressTo = new \LapayGroup\RussianPost\Entity\AddressReturn();
$addressTo->setAddressType(\LapayGroup\RussianPost\Enum\AddressType::DEFAULT);
$addressTo->setIndex(115551);
$addressTo->setPlace('Москва');
$addressTo->setRegion('Москва');
$return_shipment = new \LapayGroup\RussianPost\Entity\ReturnShipment();
$return_shipment->setMailType(\LapayGroup\RussianPost\Enum\MailType::UNDEFINED);
$return_shipment->setSenderName('Иванов Иван');
$return_shipment->setRecipientName('Петров Петр');
$return_shipment->setOrderNum(1234);
$return_shipment->setAddressFrom($addressFrom);
$return_shipment->setAddressTo($addressTo);
$result = $otpravkaApi->createReturnShipment([$return_shipment->asArr()]);
// Успешный ответ
// TODO добавьте в PR, если у кого есть реальный пример, пожалуйста :-)
// Ответ с ошибкой
/*Array
(
[0] => Array
(
[errors] => Array
(
[0] => Array
(
[code] => FREE_ER_ADDRESS_NOT_ENABLED
[description] => Свободный ввод адреса не доступен
)
)
[position] => 0
)
)*/
}
catch (\InvalidArgumentException $e) {
// Обработка ошибки заполнения параметров
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$result = $otpravkaApi->deleteReturnShipment(123456);
/*Array
(
[code] => RETURN_SHIPMENT_NOT_FOUND
[description] => Возвратное отправление не найдено
)*/
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
try {
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$addressFrom = new \LapayGroup\RussianPost\Entity\AddressReturn();
$addressFrom->setAddressType(\LapayGroup\RussianPost\Enum\AddressType::DEFAULT);
$addressFrom->setIndex(125009);
$addressFrom->setPlace('Москва');
$addressFrom->setRegion('Москва');
$addressTo = new \LapayGroup\RussianPost\Entity\AddressReturn();
$addressTo->setAddressType(\LapayGroup\RussianPost\Enum\AddressType::DEFAULT);
$addressTo->setIndex(115551);
$addressTo->setPlace('Москва');
$addressTo->setRegion('Москва');
$return_shipment = new \LapayGroup\RussianPost\Entity\ReturnShipment();
$return_shipment->setMailType(\LapayGroup\RussianPost\Enum\MailType::UNDEFINED);
$return_shipment->setSenderName('Иванов Иван');
$return_shipment->setRecipientName('Петров Петр');
$return_shipment->setOrderNum(1234);
$return_shipment->setAddressFrom($addressFrom);
$return_shipment->setAddressTo($addressTo);
$result = $otpravkaApi->editReturnShipment($return_shipment, 123456);
// Успешный ответ
// TODO добавьте в PR, если у кого есть реальный пример, пожалуйста :-)
// Ответ с ошибкой
/* Array
(
[errors] => Array
(
[0] => Array
(
[code] => FREE_ER_ADDRESS_NOT_ENABLED
[description] => Свободный ввод адреса не доступен
)
)
)*/
}
catch (\InvalidArgumentException $e) {
// Обработка ошибки заполнения параметров
}
catch (\LapayGroup\RussianPost\Exceptions\RussianPostException $e) {
// Обработка ошибочного ответа от API ПРФ
}
catch (\Exception $e) {
// Обработка нештатной ситуации
}
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$list = $otpravkaApi->shippingPoints();
use Symfony\Component\Yaml\Yaml;
use LapayGroup\RussianPost\Providers\OtpravkaApi;
$otpravkaApi = new OtpravkaApi(Yaml::parse(file_get_contents('path_to_config.yaml')));
$info = $otpravkaApi->settings();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.