, (*1)
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
Π Π°Π±ΠΎΡΠ° Ρ API ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠΈΠ½Π³Π° ΠΈ API ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ° Ρ ΠΠΎΡΡΠΎΠΉ Π ΠΎΡΡΠΈΠΈ., (*2)
Π Π°Π±ΠΎΡΠ° Ρ API Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠΈΠ½Π³Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΊΠ°ΠΊ Ρ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠΌ, ΡΠ°ΠΊ ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ (Π½ΠΎ Ρ Π»ΠΈΠΌΠΈΡΠΎΠΌ β 100 Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΡΡΠΊΠΈ)., (*3)
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ β PHP 7.1+, ext-soap, ext-json., (*4)
ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Composer:, (*5)
composer require appwilio/russianpost-sdk
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Laravel SDK Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ., (*6)
ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ Laravel β 5.8., (*7)
ΠΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ»Ρ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΎΡΠ²Π΅ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π»ΡΠ±ΠΎΠΉ Π»ΠΎΠ³Π³Π΅Ρ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ PSR-3, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Monolog:, (*8)
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
$log = (new Logger('pochta.ru'))
->pushHandler(new StreamHandler('path/to/your.log', Logger::INFO));
// SingleAccessClient, PacketAccessClient, DispatchingClient
$client->setLogger($log);
Π ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Laravel ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π»ΠΎΠ³Π³Π΅Ρ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ appwilio.russianpost.logger:, (*9)
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
$this->app->singleton('appwilio.russianpost.logger', static function () {
return (new Logger('pochta.ru'))
->pushHandler(new StreamHandler('path/to/your.log', Logger::INFO));
});
Π’ΡΠ΅ΠΊΠΈΠ½Π³
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, (*10)
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π² Laravel
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΠΈΠ΅ ΠΊΠ»ΡΡΠΈ Π² services.php:, (*11)
// ...
'russianpost' => [
'tracking' => [
'login' => \env('RUSSIAN_POST_TRACKING_LOGIN'),
'password' => \env('RUSSIAN_POST_TRACKING_PASSWORD'),
],
],
// ...
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ Π·Π°ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Ρ!, (*12)
ΠΠ΄ΠΈΠ½ΠΈΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° SingleAccessClient ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° β Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ ΠΎΡ Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ° Π½Π° ΡΠ°ΠΉΡΠ΅ ΠΠΎΡΡΡ Π ΠΎΡΡΠΈΠΈ., (*13)
use Appwilio\RussianPostSDK\Tracking\SingleAccessClient;
$tracker = new SingleAccessClient($login = 'login', $password = 'secret');
ΠΡΠ»ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ Π¨ΠΠ (ΡΡΠ΅ΠΊ-ΠΊΠΎΠΌΠ΅ΡΡ) Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ, ΡΠΎ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Appwilio\RussianPostSDK\Tracking\Exceptions\SingleAccessException Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ., (*14)
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΏΠΎ Π¨ΠΠ (ΡΡΠ΅ΠΊ-ΠΊΠΎΠΌΠ΅ΡΡ)
$response = $tracker->getTrackingEvents('29014562148754');
ΠΠ±ΡΠ΅ΠΊΡ $response ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ \IteratorAggregate, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π·Ρ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ Π² ΡΠΈΠΊΠ»Π΅:, (*15)
foreach ($response as $events) {
$parameters = $events->getOperationParameters();
echo $parameters->getOperationId();
echo $parameters->getAttributeId();
echo $parameters->getPerformedAt()->format('d.m.Y Π² h:i:s'); // 17.09.2019 Π² 17:20:48
}
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π½Π°Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ ΠΏΠ»Π°ΡΠ΅ΠΆΠ΅ ΠΏΠΎ Π¨ΠΠ (ΡΡΠ΅ΠΊ-ΠΊΠΎΠΌΠ΅ΡΡ)
$response = $tracker->getCashOnDeliveryEvents('29014562148754');
ΠΠ±ΡΠ΅ΠΊΡ $response ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ \IteratorAggregate, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π·Ρ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ Π² ΡΠΈΠΊΠ»Π΅:, (*16)
foreach ($response as $event) {
$parameters = $event->getOperationParameters();
echo $parameters->getTransferNumber();
echo $parameters->getPayment(); // 7410
echo $parameters->getPerformedAt()->format('d.m.Y Π² h:i:s'); // 17.09.2019 Π² 17:20:48
}
ΠΠ°ΠΊΠ΅ΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ
use Appwilio\RussianPostSDK\Tracking\PacketAccessClient;
$tracker = new PacketAccessClient($login = 'login', $password = 'secret');
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΏΠΎ Π¨ΠΠ (ΡΡΠ΅ΠΊ-ΠΊΠΎΠΌΠ΅ΡΡ)
$ticket = $tracker->getTicket(['29014562148754', 'RA325487125CN']); // ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ 3 000 ΡΡΠ΅ΠΊΠΎΠ²
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°ΡΡ 15 ΠΌΠΈΠ½ΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΠΎΡΠΎΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ., (*17)
$response = $tracker->getTrackingEvents($ticket->getId());
echo $response->getPreparedAt()->format('d.m.Y Π² h:m:s');
ΠΠ±ΡΠ΅ΠΊΡ $response ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ \IteratorAggregate, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π·Ρ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ Π² ΡΠΈΠΊΠ»Π΅:, (*18)
foreach ($response as $item) {
echo $item->getBarcode();
foreach ($item as $events) {
echo $events->getOperationId();
echo $events->getAttributeId();
echo $events->getPerformedAt()->format('d.m.Y Π² h:m:s'); // 17.09.2019 Π² 17:20:48
}
}
ΠΡΠΏΡΠ°Π²ΠΊΠ°
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, (*19)
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° DispatchingClient ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΠΈ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°: Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ ΠΎΡ Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ° Π½Π° ΡΠ°ΠΉΡΠ΅ ΠΠΎΡΡΡ Π ΠΎΡΡΠΈΠΈ,
Π° ΡΠ°ΠΊ ΠΆΠ΅ ΡΠΎΠΊΠ΅Π½ Π΄ΠΎΡΡΡΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΠΏΠΎΡΡΡ
ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ° Β«ΠΡΠΏΡΠ°Π²ΠΊΠ°Β» ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ½ Π² Π»ΠΈΡΠ½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ΅., (*20)
use GuzzleHttp\Client as GuzzleClient;
use Appwilio\RussianPostSDK\Dispatching\DispatchingClient;
$dispatching = new DispatchingClient(
$login = 'login', $password = 'secret', $token = 'QWERTY', new GuzzleClient()
);
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π² Laravel
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΠΈΠ΅ ΠΊΠ»ΡΡΠΈ Π² services.php:, (*21)
// ...
'russianpost' => [
'dispatching' => [
'token' => \env('RUSSIAN_POST_DISPATCHING_TOKEN'),
'login' => \env('RUSSIAN_POST_TDISPATCHING_LOGIN'),
'password' => \env('RUSSIAN_POST_DISPATCHING_PASSWORD'),
'guzzle' => [
'timeout' => 5,
],
],
],
// ...
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ Π·Π°ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Ρ!, (*22)
Π Π°ΡΡΡΡ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ
use Appwilio\RussianPostSDK\Dispatching\Enum\MailType;
use Appwilio\RussianPostSDK\Dispatching\Enum\MailCategory;
use Appwilio\RussianPostSDK\Dispatching\Enum\MailEntryType;
use Appwilio\RussianPostSDK\Dispatching\Endpoints\Services\Requests\CalculationRequest;
$response = $dispatching->services->calculate(
CalculationRequest::create('123456', 200)
->ofMailType(MailType::PARCEL_POSTAL())
->ofMailCategory(MailCategory::ORDINARY())
->ofEntriesType(MailEntryType::GOODS())
->fragile()
->withSmsNotice()
);
echo $response->getTotal()->getRate();
echo $response->getTotal()->getVAT(); // ΠΠΠ‘
ΠΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ
ΠΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π€ΠΠ
use Appwilio\RussianPostSDK\Dispatching\Endpoints\Services\Requests\NormalizeFioRequest;
$response = $dispatching->services->normalizeFio(
NormalizeFioRequest::one('ΠΈΠ²Π°Π½ΠΎΠ² ΠΈΠ²Π°Π½ ΠΈΠ²Π°Π½ΠΎΠ²ΠΈΡ')
);
if ($response[0]->isUseful()) {
echo $response[0]->getFirstName().' '.$response[0]->getLastName(); // ΠΠ²Π°Π½ ΠΠ²Π°Π½ΠΎΠ²
}
ΠΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π°Π΄ΡΠ΅ΡΠΎΠ²
use Appwilio\RussianPostSDK\Dispatching\Endpoints\Services\Requests\NormalizeAddressRequest;
$response = $dispatching->services->normalizeAddress(
NormalizeAddressRequest::one('ΠΠΎΡΠΊΠ²Π° Π²Π°ΡΡΠ°Π²ΡΠΊΠΎΠ΅ ΡΠΎΡΡΠ΅ 37-45')
);
ΠΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΎΠ²
use Appwilio\RussianPostSDK\Dispatching\Endpoints\Services\Requests\NormalizePhoneRequest;
$response = $dispatching->services->normalizePhone(NormalizePhoneRequest::one('89001234567'));
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π±Π»Π°Π³ΠΎΠ½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ
use Appwilio\RussianPostSDK\Dispatching\Endpoints\Services\Requests\CheckRecipientRequest;
$response = $dispatching->services->checkRecipient(
CheckRecipientRequest::one('ΠΠΎΡΠΊΠ²Π°, ΠΠ°ΡΡΠ°Π²ΡΠΊΠΎΠ΅ ΡΠΎΡΡΠ΅, 37-45', 'ΠΠ²Π°Π½ΠΎΠ² ΠΠ²Π°Π½ ΠΠ²Π°Π½ΠΎΠ²ΠΈΡ', '+7 123 456-78-90')
);
$response[0]->isFraud(); // Π½Π΅Π½Π°Π΄ΡΠΆΠ½ΡΠΉ
$response[0]->isReliable(); // Π½Π°Π΄ΡΠΆΠ½ΡΠΉ
use Appwilio\RussianPostSDK\Dispatching\Endpoints\Services\Requests\CheckRecipientRequest;
$request = CheckRecipientRequest::create();
$request->addRecipient('123456 ΠΠΎΡΠΊΠ²Π°, ΠΠ°ΡΡΠ°Π²ΡΠΊΠΎΠ΅ ΡΠΎΡΡΠ΅, 37-45', 'ΠΠ²Π°Π½ΠΎΠ² ΠΠ²Π°Π½ ΠΠ²Π°Π½ΠΎΠ²ΠΈΡ', '+7 123 456-78-90');
$response = $dispatching->services->checkRecipient($request);
foreach ($response as $recipient) {
echo $recipient->getAddress.': '.$recipient->isReliable();
}
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ
$file = $dispatching->documents->orderF7Form('12345678');
echo $file->getClientFilename(); // f7p.pdf
// Π‘ΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅
$file->moveTo("storage/printforms/12345678-{$file->getClientFilename()}");
// ΠΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π² Π±ΡΠ°ΡΠ·Π΅Ρ (Laravel)
return \response()->streamDownload(staticfunction () use ($file) {
(string) $file->getStream();
}, $file->getClientName(), ['Content-Type' => $file->getClientMediaType()]);
Π€ΠΎΡΠΌΠ° Π€7ΠΏ Π΄Π»Ρ Π·Π°ΠΊΠ°Π·Π°
use Appwilio\RussianPostSDK\Dispatching\Enum\PrintType;
$pdf = $dispatching->documents->orderF7Form(
'12345678', new \DateTime('2019-01-01'), PrintType::PAPER()
);
Π€ΠΎΡΠΌΠ° Π€112ΠΠ Π΄Π»Ρ Π·Π°ΠΊΠ°Π·Π°
$pdf = $dispatching->documents->orderF112Form('12345678', new \DateTime('2019-01-01'));
ΠΠ°ΠΊΠ΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ Π·Π°ΠΊΠ°Π·Π° (Π΄ΠΎ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΡΡΠΈΠΈ)
$zip = $dispatching->documents->orderFormsBundleBacklog('12345678', new \DateTime('2019-01-01'));
ΠΠ°ΠΊΠ΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ Π·Π°ΠΊΠ°Π·Π° (ΠΏΠΎΡΠ»Π΅ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΡΡΠΈΠΈ)
use Appwilio\RussianPostSDK\Dispatching\Enum\PrintType;
$zip = $dispatching->documents->orderFormBundle(
'12345678', new \DateTime('2019-01-01'), PrintType::THERMO()
);
ΠΠ°ΠΊΠ΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΏΠ°ΡΡΠΈΠΈ
$zip = $dispatching->documents->batchFormBundle('87654321');
ΠΠΊΡ ΠΎΡΠΌΠΎΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΏΠ°ΡΡΠΈΠΈ
$pdf = $dispatching->documents->batchCheckingForm('87654321');
Π€ΠΎΡΠΌΠ° Π€103 Π΄Π»Ρ ΠΏΠ°ΡΡΠΈΠΈ
$pdf = $dispatching->documents->batchF103Form('87654321');
ΠΠΎΠ·Π²ΡΠ°ΡΠ½ΡΠΉ ΡΡΠ»ΡΠΊ
use Appwilio\RussianPostSDK\Dispatching\Enum\PrintType;
$pdf = $dispatching->documents->easyReturnForm('29014562148754', PrintType::THERMO());
ΠΠ°ΠΏΡΡΠΊ ΡΠ΅ΡΡΠΎΠ²
$ vendor/bin/phpunit
ΠΠ²ΡΠΎΡΡ
ΠΠΈΡΠ΅Π½ΡΠΈΡ
ΠΠ°Π½Π½ΡΠΉ SDK ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ MIT., (*23)