mvdnbrk/dhlparcel-php-api

PHP的DHL包裹API客户端

v1.5.0 2021-05-28 14:21 UTC

README

PHP version Latest Version on Packagist Software License Tests Code style Total Downloads

DHL包裹API文档

安装

您可以通过composer安装此包

composer require mvdnbrk/dhlparcel-php-api

使用方法

初始化DHL包裹客户端并设置您的凭据。

$dhlparcel = new \Mvdnbrk\DhlParcel\Client();

$dhlparcel->setUserId('your-user-id');
$dhlparcel->setApiKey('your-api-key');

如果您有多个账户,您可以可选地设置一个账户ID

$dhlparcel->setAccountId('123456');

创建包裹

$parcel = new \Mvdnbrk\DhlParcel\Resources\Parcel([
    'reference' => 'your own reference for the parcel (optional)',
    'recipient' => [
        'first_name' => 'John',
        'last_name' => 'Doe',
        'street' => 'Poststraat',
        'number' => '1',
        'number_suffix' => 'A',
        'postal_code' => '1234AA',
        'city' => 'Amsterdam',
        'cc' => 'NL',
    ],
    'sender' => [
        'company_name' => 'Your Company Name',
        'street' => 'Pakketstraat',
        'additional_address_line' => 'Industrie 9999',
        'number' => '99',
        'postal_code' => '9999AA',
        'city' => 'Amsterdam',
        'cc' => 'NL',
    ],
    // Optional. This will be set as the default.
    'pieces' => [
        [
            'parcel_type' => \Mvdnbrk\DhlParcel\Resources\Piece::PARCEL_TYPE_SMALL,
            'quantity' => 1,
        ],
    ],
]);

创建货运

$shipment = $dhlparcel->shipments->create($parcel);

$shipment->id;
// For shipments with multiple pieces:
$shipment->pieces->each(function ($item) {
    $item->label_id;
    $item->barcode;
})
// For a shipment with one single piece:
$shipment->label_id;
$shipment->barcode;

获取标签

可以使用label_id检索标签。这将返回一个字符串形式的PDF标签。

$dhlparcel->labels->get($shipment->label_id);

或者,您可以直接将Shipment实例传递给此方法

$dhlparcel->labels->get($shipment);

传递Shipment实例将仅检索单件货运的标签,或者如果您创建了包含多个件次的货运,则是第一件。如果您创建了包含多个件次的货运,您应该逐个检索货运中每个件次的标签。

为包裹设置投递选项

您可以在创建包裹时直接传递选项来设置包裹的投递选项

$parcel = new \Mvdnbrk\MyParcel\Resources\Parcel([
    ...
    'recipient' => [
        ...
    ],
    'options' => [
        'description' => 'Order #123',
        'signature' => true,
        'only_recipient' => true,
        'cash_on_delivery' => 9.95,
        'evening_delivery' => true,
        'extra_assurance' => true,
        ...
    ],
]);

或者,您可以在构建包裹后使用signature()和其他方法

$parcel->onlyRecipient()
       ->signature()
       ->labelDescription('Order #123')
       ->cashOnDelivery(9.95)
       ->eveningDelivery()
       ->extraAssurance();

邮箱包裹

如果您想发送适合标准邮箱的包裹,您可以使用mailboxpackage()方法

$parcel->mailboxpackage();

将包裹投递至DHL服务点

您可以将包裹发送到客户可以取件的DHL服务点。服务点的ID可以在创建包裹时直接设置或使用servicePoint方法设置

$parcel = new \Mvdnbrk\MyParcel\Resources\Parcel([
    ...
    'options' => [
        'service_point_id' => '8004-NL-272403',
        ...
    ],
]);

$parcel->servicePoint('8004-NL-272403');

跟踪货运

$tracktrace = $dhlparcel->tracktrace->get('JVGL...');

// Check if the shipment is delivered:
$tracktrace->isDelivered;

检索服务点

$servicepoints = $dhlparcel->servicePoints->setPostalcode('1012AA')->setHousenumber('1')->get();

这将返回一组ServicePoint对象

$servicepoints->each(function ($item) {
    $item->id;
    $item->name;
    $item->latitude;
    $item->longitude;
    $item->distance;
    $item->distanceForHumans();
});

与Laravel一起使用

您可以通过使用此包将此包集成到您的Laravel应用程序中。

测试

composer test

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

贡献

请参阅贡献指南以获取详细信息。

安全漏洞

请查看我们的安全策略以了解如何报告安全漏洞。

鸣谢

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。