elcuro/qdl-php-client

QDL的简单PHP客户端

dev-master 2024-05-23 22:01 UTC

README

关于

QDL(斯洛伐克物流公司)的简单PHP客户端QDL

安装

使用Composer将该软件包作为依赖项安装。

composer require elcuro/qdl-php-client

使用方法

创建QDL客户端

客户端不依赖于任何特定的HTTP客户端。它支持任何PSR-18兼容的客户端。例如: Buzz客户端

您还需要安装一个PSR-17请求/响应工厂。它使用该工厂来创建PSR-7请求和响应。例如: nyholm/psr7

use Elcuro\QdlPhpClient\Client\Client;
use Nyholm\Psr7\Factory\Psr17Factory;
use Buzz\Client\Curl;

// We will use Buzz client and nyholm/psr7 factories
$factory = new Psr17Factory();

$client = new Client(
    new Curl($factory),
    $factory,
    $factory,
    'QDL_USERNAME',
    'QDL_PASSWORD'
);

添加/订购/取消运输

use Elcuro\QdlPhpClient\Shipping\Shipment\Shipment;
use Elcuro\QdlPhpClient\Shipping\Shipment\ShipmentPackage;
use Elcuro\QdlPhpClient\Shipping\ShipmentManager;

// Create shipment manager
$shipmentManager = new ShipmentManager($client, new AddedShipmentFactory());

// Create shipment
$shipment = new Shipment();
$shipment
    ->setSenderId(1)
    ->setRecipientName('Fake user')
    //...
    ->addPackage(new ShipmentPackage(1))
;

// Add shipment
$addedShipment = $shipmentManager->addShipment($shipment);

// Order unordered shipments
$shipmentManager->order();

// Cancel shipment
$shipmentManager->cancelShipment($addedShipment->getId());

标签和交接协议

use Elcuro\QdlPhpClient\Document\DocumentFactory;
use Elcuro\QdlPhpClient\Document\DocumentFetcher;
use Elcuro\QdlPhpClient\Document\Label\LabelType;


// Create document fetcher
$documentFetcher = new DocumentFetcher($client, new DocumentFactory());

// Show label PDF
echo $documentFetcher->fetchLabel([30124122200010], LabelType::A4)->getPDF();

// or show handover protocol
echo $documentFetcher->fetchHandoverProtocol([30124122200010])->getPDF();

跟踪

use Elcuro\QdlPhpClient\Tracking\TrackLog\TrackLogsFactory;
use Elcuro\QdlPhpClient\Tracking\Tracker;

// Create tracker
$tracker = new Tracker($client, new TrackLogsFactory());

// Fetch track logs
$trackLogs = $tracker->trackShipment(30124122200010);

// Show track logs
foreach ($trackLogs as $trackLog) {
    sprintf(
        "Date: %s, Status: %s\n",
        $trackLog->getDate()->format('Y-m-d'),
        $trackLog->getName()
    );
}

贡献

欢迎贡献!要贡献力量,请熟悉CONTRIBUTING.md

版权和许可

elcuro/qdl-php-client版权所有© Juraj Jancuska,并按照MIT许可证(MIT)的条款许可使用。更多信息请参阅LICENSE