mehr-it / sdk-api-bcs
DHL 商业客户运输 API
1.4.0
2022-07-11 07:01 UTC
Requires (Dev)
- ext-simplexml: *
- phpstan/phpstan: ^1.5.0
- phpunit/phpunit: ^8.0.0 || ^9.0.0
- squizlabs/php_codesniffer: ^3.4
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 Authentication 和 SOAP 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]);