goedgepickt / dhlparcel-php-api
PHP版本的DHL Parcel API客户端
v1.5.14
2023-09-08 07:47 UTC
Requires
- php: ^7.2 || ^8.0
- ext-json: *
- composer/ca-bundle: ^1.2
- guzzlehttp/guzzle: ^6.4 || ^7.1
- lcobucci/jwt: ^3.4 || ^4.0
- ramsey/uuid: ^4.0
- tightenco/collect: ^5.8 || ^6.0 || ^7.0 || ^8.0
Requires (Dev)
- phpunit/phpunit: ^8.0 || ^9.4
- symfony/var-dumper: ^5.0
- vlucas/phpdotenv: ^5.0
- dev-main / 2.0.x-dev
- v1.5.14
- v1.5.13
- v1.5.12
- v1.5.11
- v1.5.10
- v1.5.9
- v1.5.8
- v1.5.7
- v1.5.6
- v1.5.5
- v1.5.4
- v1.5.3
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.1
- v1.4.0
- v1.3.1
- v1.3.0
- v1.2.1
- v1.2.0
- v1.1.1
- v1.1.0
- v1.0.1
- v1.0.0
- v0.8.2
- v0.8.1
- v0.8.0
- v0.7.0
- v0.6.2
- v0.6.1
- v0.6.0
- v0.5.0
- v0.4.1
- v0.4.0
- v0.3.4
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.0
- v0.1.2
- v0.1.1
- v0.1.0
- dev-add-ssn-option
This package is auto-updated.
Last update: 2024-09-08 09:56:20 UTC
README
此仓库是 mvdnbrk/dhlparcel-php-api 的分支版本
PHP版本的DHL Parcel API客户端
安装
您可以通过composer安装此包
composer require mvdnbrk/dhlparcel-php-api
用法
初始化DHL Parcel客户端并设置您的凭证。
$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
变更日志
请参阅 CHANGELOG 了解最近更改的详细信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全漏洞
请参阅 我们的安全策略 了解如何报告安全漏洞。
鸣谢
许可
MIT许可(MIT)。请参阅 许可文件 了解更多信息。