mehr-it/sdk-api-bcs

DHL 商业客户运输 API

1.4.0 2022-07-11 07:01 UTC

This package is not auto-updated.

Last update: 2024-09-17 16:19:54 UTC


README

DHL 商业客户运输 API SDK 软件包提供了以下 Web 服务的接口

  • Geschäftskundenversand 3.1.2

需求

系统需求

  • PHP 7.2+ 且包含 SOAP 扩展

包需求

  • psr/log: PSR-3 日志接口

开发包需求

  • phpunit/phpunit: 测试框架

安装

$ composer require dhl/sdk-api-bcs

卸载

$ composer remove dhl/sdk-api-bcs

测试

$ ./vendor/bin/phpunit -c test/phpunit.xml

功能

DHL BCS API SDK 支持以下功能

  • 验证运输
  • 创建运输订单
  • 删除运输订单

身份验证

DHL BCS API 需要两级身份验证(HTTP Basic AuthenticationSOAP Header Authentication)。API SDK 提供了认证存储以传递凭证。

$authStorage = new \Dhl\Sdk\Paket\Bcs\Auth\AuthenticationStorage('appId', 'appToken', 'user', 'signature');

验证运输

验证包括相关运输文件的 DHL 包裹运输的运输。

公共 API

适用于消费的库组件包括

  • 服务
    • 服务工厂
    • 运输服务
    • 数据传输对象构建器
  • 数据传输对象
    • 认证存储
    • 包含状态消息的验证结果

用法

$logger = new \Psr\Log\NullLogger();

$serviceFactory = new ServiceFactory();
$service = $serviceFactory->createShipmentService($authStorage, $logger, $sandbox = true);

$requestBuilder = new ShipmentOrderRequestBuilder();
$requestBuilder->setShipperAccount($billingNumber = '22222222220101');
$requestBuilder->setShipperAddress(
    $company = 'DHL',
    $country = 'DE',
    $postalCode = '53113',
    $city = 'Bonn',
    $street = 'Charles-de-Gaulle-Straße',
    $streetNumber = '20'
);
$requestBuilder->setRecipientAddress(
    $recipientName = 'Jane Doe',
    $recipientCountry = 'DE',
    $recipientPostalCode = '53113',
    $recipientCity = 'Bonn',
    $recipientStreet = 'Sträßchensweg',
    $recipientStreetNumber = '2'
);
$requestBuilder->setShipmentDetails($productCode = 'V01PAK', $shipmentDate = '2019-09-09');
$requestBuilder->setPackageDetails($weightInKg = 2.4);

$shipmentOrder = $requestBuilder->create();
$result = $service->validateShipments([$shipmentOrder]);

创建运输订单

为 DHL 包裹创建包括相关运输文件的运输。

公共 API

适用于消费的库组件包括

  • 服务
    • 服务工厂
    • 运输服务
    • 数据传输对象构建器
  • 数据传输对象
    • 认证存储
    • 带有运输/跟踪号和标签的运输

用法

$logger = new \Psr\Log\NullLogger();

$serviceFactory = new ServiceFactory();
$service = $serviceFactory->createShipmentService($authStorage, $logger, $sandbox = true);

$requestBuilder = new ShipmentOrderRequestBuilder();
$requestBuilder->setShipperAccount($billingNumber = '22222222220101');
$requestBuilder->setShipperAddress(
    $company = 'DHL',
    $country = 'DE',
    $postalCode = '53113',
    $city = 'Bonn',
    $street = 'Charles-de-Gaulle-Straße',
    $streetNumber = '20'
);
$requestBuilder->setRecipientAddress(
    $recipientName = 'Jane Doe',
    $recipientCountry = 'DE',
    $recipientPostalCode = '53113',
    $recipientCity = 'Bonn',
    $recipientStreet = 'Sträßchensweg',
    $recipientStreetNumber = '2'
);
$requestBuilder->setShipmentDetails($productCode = 'V01PAK', $shipmentDate = '2019-09-09');
$requestBuilder->setPackageDetails($weightInKg = 2.4);

$shipmentOrder = $requestBuilder->create();
$shipments = $service->createShipments([$shipmentOrder]);

删除运输订单

取消之前创建的运输。

公共 API

适用于消费的库组件包括

  • 服务
    • 服务工厂
    • 运输服务
  • 数据传输对象
    • 认证存储

用法

$logger = new \Psr\Log\NullLogger();

$serviceFactory = new ServiceFactory();
$service = $serviceFactory->createShipmentService($authStorage, $logger, $sandbox = true);

$shipmentNumber = '222201011234567890';
$cancelled = $service->cancelShipments([$shipmentNumber]);