承接 shipsa/dhl-sdk 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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

GitHub 信息

  • Stars: 1
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-06-21

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固