mvdnbrk / dhlparcel-php-api
PHP的DHL包裹API客户端
v1.5.0
2021-05-28 14:21 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
README
安装
您可以通过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)。请参阅许可证文件以获取更多信息。