dhl/sdk-api-parcel-de-returns

DHL Parcel DE Returns API SDK

1.1.0 2024-05-24 10:13 UTC

This package is auto-updated.

Last update: 2024-08-27 15:41:40 UTC


README

DHL Parcel DE Returns API SDK 包提供了以下网络服务的接口

要求

系统要求

  • 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 消息的任何包

开发包要求

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

安装

composer require dhl/sdk-api-parcel-de-returns

卸载

composer remove dhl/sdk-api-parcel-de-returns

测试

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

功能

DHL Parcel DE Returns API SDK 支持以下功能

身份验证

DHL Parcel DE Returns API 需要进行两级身份验证(参见 API 用户指南

  1. 应用程序 通过在 DHL API 开发者门户 中创建的 Consumer Key Header("API 密钥")提交一个 Consumer Key Header
  2. 用户 通过在 DHL 商业客户门户 中配置的凭据通过 HTTP Basic Authentication 进行身份验证。

这些凭据通过 \Dhl\Sdk\ParcelDe\Returns\Api\Data\AuthenticationStorageInterface 传递给 SDK。使用默认实现或创建自己的实现。

预订退货标签

创建一个退货标签 PDF 或一个 QR 码,以便由提交地点(例如邮局)扫描。对于来自欧盟外的退货,还可以请求海关文件。

退货货物的目的地地址通过 Receiver ID 参数确定。退货收件人和其 ID("退货收件人姓名")在 DHL 商业客户门户退货设置 部分中进行配置。更多详细信息请参阅 API 常见问题解答

公共 API

适用于消费的库组件包括

  • 服务
    • 服务工厂
    • 退货标签服务
    • 数据传输对象构建器
  • 数据传输对象
    • 认证存储
    • 带有标签数据的预订确认

使用方法

$authStorage = new \Dhl\Sdk\ParcelDe\Returns\Auth\AuthenticationStorage(
    'apiKey',
    'user',
    'password'
);
$logger = new \Psr\Log\NullLogger();

$serviceFactory = new \Dhl\Sdk\ParcelDe\Returns\Service\ServiceFactory();
$service = $serviceFactory->createReturnLabelService($authStorage, $logger, $sandbox = true);

$requestBuilder = new \Dhl\Sdk\ParcelDe\Returns\Model\ReturnLabelRequestBuilder();
$requestBuilder->setReceiverId($returnRecipient = 'deu');
$requestBuilder->setShipper(
    $name = 'Jane Doe',
    $countryCode = 'DEU',
    $postalCode = '53113',
    $city = 'Bonn',
    $streetName = 'Sträßchensweg',
    $streetNumber = '2'
);

$returnOrder = $requestBuilder->create();
$confirmation = $service->createReturnOrder($returnOrder);