dhl/sdk-api-parcel-management

DHL Paket Parcel Management API SDK

3.3.0 2024-05-24 10:23 UTC

This package is auto-updated.

Last update: 2024-08-27 15:34:02 UTC


README

DHL Paket Parcel Management API SDK 包提供以下网络服务的接口

  • 包裹管理结账 API

需求

系统需求

  • PHP 8.1+ 带有 JSON 扩展

包需求

  • netresearch/jsonmapper:将 JSON 响应消息反序列化为 PHP 对象的映射器
  • php-http/discovery:HTTP 客户端和消息工厂实现的发现服务
  • php-http/httplug:可插拔的 HTTP 客户端抽象
  • php-http/logger-plugin:HTTPlug 的 HTTP 客户端日志插件
  • psr/http-client:PSR-18 HTTP 客户端接口
  • psr/http-factory:PSR-7 HTTP 消息工厂接口
  • psr/http-message:PSR-7 HTTP 消息接口
  • psr/log:PSR-3 日志接口

虚拟包需求

  • psr/http-client-implementation:任何提供 PSR-18 兼容 HTTP 客户端的包
  • psr/http-factory-implementation:任何提供 PSR-7 兼容 HTTP 消息工厂的包
  • psr/http-message-implementation:任何提供 PSR-7 HTTP 消息的包

开发包需求

  • fig/log-test:用于测试目的的 PSR-3 日志实现
  • nyholm/psr7:PSR-7 HTTP 消息工厂和消息实现
  • phpunit/phpunit:测试框架
  • php-http/mock-client:HTTPlug 模拟客户端实现
  • phpstan/phpstan:静态分析工具
  • rector/rector:自动重构工具,帮助进行 PHP 升级
  • squizlabs/php_codesniffer:静态分析工具

安装

$ composer require dhl/sdk-api-parcel-management

卸载

$ composer remove dhl/sdk-api-parcel-management

测试

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

功能

DHL Paket Parcel Management API SDK 支持以下功能

可用服务

为了在结账期间向客户提供有效的 DHL 服务选项,可以使用此 API 端点。使用收件人地址的邮政编码(recipientZip)计算可用的 DHL 服务。

公共 API

适用于消费的库组件包括

  • 服务
    • 服务工厂
    • 结账服务
  • 数据传输对象
    • 带可用性标志和选项的承运商服务(可选)
  • 异常

用法

$serviceFactory = new \Dhl\Sdk\Paket\ParcelManagement\Service\ServiceFactory();
$service = $serviceFactory->createCheckoutService(
    $applicationId = '4pp-1D',
    $applicationToken = '4pp-t0k3N',
    $ekp = '1234567890',
    $logger = new \Psr\Log\NullLogger(),
    $sandbox = true
);

$carrierServices = $service->getCarrierServices($postalCode = '12345', $dropOffDate = new \DateTime('2038-01-19'));

// process response as desired:
$getAvailableServices = function (
    array $availableServices,
    \Dhl\Sdk\Paket\ParcelManagement\Api\Data\CarrierServiceInterface $carrierService
) {
    if ($carrierService->isAvailable()) {
        $availableServices[$carrierService->getCode()] = $carrierService;
    }

    return $availableServices;
};

$availableServices = array_reduce($carrierServices, $getAvailableServices, []);