shipsa/dhl-sdk
Composer 安装命令:
composer require shipsa/dhl-sdk
包简介
PHP and Laravel SDK for integrating DHL shipping services
README 文档
README
A modern PHP SDK for the DHL Express API.
Features
- ✅ Get shipping rates
- ✅ Create shipments
- ✅ Generate shipping labels
- ✅ Shipment tracking number and tracking URL
- ✅ Customs declaration support
- ✅ DTO-based requests
- ✅ Object-oriented responses
- ✅ PHP 8.1+
Installation
composer require shipsa/dhl-sdk
Configuration
Add the following variables to your .env file:
DHL_API_KEY=your_api_key DHL_API_SECRET=your_api_secret DHL_TEST_MODE=true
Or define them in your config file:
return [ 'api_key' => env('DHL_API_KEY'), 'api_secret' => env('DHL_API_SECRET'), 'test_mode' => env( 'DHL_TEST_MODE', true ), ];
Usage
use Shipsa\DhlSdk\DHL; $dhl = new DHL( apiKey: env('DHL_API_KEY'), secret: env('DHL_API_SECRET'), sandbox: true );
Get Rates
use Shipsa\DhlSdk\DTO\Address; use Shipsa\DhlSdk\DTO\Package; $origin = new Address( countryCode: $countryCode, cityName: $cityName, postalCode: $postalCode ); $destination = new Address( countryCode: $countryCode, cityName: $cityName, postalCode: $postalCode ); $package = new Package( weight: 1, length: 10, width: 5, height: 1 ); $rates = $dhl ->rate() ->setAccountNumber('123456789') ->setOriginAddress($origin) ->setDestinationAddress($destination) ->setPlannedShippingDate(new DateTimeImmutable()) ->setPackage($package) ->setNextBusinessDay(true) ->setCustomsDeclarable(false) ->getRates();
Example
foreach ($rates as $rate) { echo $rate->getProductName(); echo $rate->getTotalPrice(); echo $rate->getCurrency(); } $bestRate = $rateService->getCheapestRate($currancy); $estimatedDays = $bestRate->getEstimatedDays();
Create Shipment
$accounts = [ new Account( typeCode: 'shipper', number: config('services.dhl.account_number'), ), ]; $shipment = $dhl ->shipment() ->setPickup($pickup) ->setAccounts($accounts) ->setShipperDetails($shipperAddress, $shipperContact) ->setReceiverDetails($receiverAddress, $receiverContact) ->setPackages($packages) ->setPackages($packages) ->setDescription($description) ->setIncoterm($incoterm) ->isCustomsDeclarable($isCustomsDeclarable) ->createShipment();
Shipment Response
$shipment->getTrackingNumber(); $shipment->getDispatchConfirmationNumber(); $shipment->getTrackingUrl(); $shipment->getLabelPdf(); $shipment->getPackages();
Responses
RateResponse
$rate->getProductName(); $rate->getProductCode(); $rate->getTotalPrice(); $rate->getCurrency(); $rate->getEstimatedDeliveryDateAndTime(); $rate->getPricingDate();
ShipmentResponse
$shipment->getShipmentTrackingNumber(); $shipment->getDispatchConfirmationNumber(); $shipment->getTrackingUrl(); $shipment->getLabelPdf();
Supported Features
| Feature | Status |
|---|---|
| Get Rates | ✅ |
| Create Shipment | ✅ |
| Shipping Labels | ✅ |
| Customs Declaration | ✅ |
| DTO Requests | ✅ |
| Object Responses | ✅ |
| Tracking | 🚧 |
| Pickup | 🚧 |
Requirements
- PHP 8.1+
- Guzzle 7+
Roadmap
- Get Rates
- Create Shipment
- Generate Labels
- Shipment Tracking
- Pickup Requests
- Laravel Service Provider
- Unit Tests
License
MIT
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-06-21