德国邮政/sdk-api-addressfactory

PostDirekt Addressfactory API

2.1.0 2024-05-03 09:31 UTC

This package is auto-updated.

Last update: 2024-08-27 12:22:01 UTC


README

Postdirekt Addressfactory API SDK 包提供对 ADDRESSFACTORY DIRECT 网络服务的接口,允许修正和丰富地址数据集。

要求

系统要求

  • PHP 8.1+ 带有 SOAP 扩展

包要求

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

开发包要求

  • phpstan/phpstan: 静态分析工具
  • phpunit/phpunit: 测试框架
  • squizlabs/php_codesniffer: 静态分析工具
  • rector/rector: 重构工具
  • fig/log-test: psr/log 的测试工具

安装

composer require deutschepost/sdk-api-addressfactory

卸载

composer remove deutschepost/sdk-api-addressfactory

测试

composer run test

功能

Postdirekt Addressfactory API SDK 支持以下功能

  • 通过平面地址数据获取地址记录
  • 通过复杂地址数据获取地址记录

通过地址获取记录

通过传递名称和街道地址来验证单个地址记录。

公共API

库中适合消费的组件包括

  • 服务
    • 服务工厂
    • 地址验证服务
  • 数据传输对象
    • 包含纠正和状态码的响应记录,指示输入数据的问题

用法

$logger = new \Psr\Log\NullLogger();
$configName = 'default';

$serviceFactory = new \PostDirekt\Sdk\AddressfactoryDirect\Service\ServiceFactory();
$service = $serviceFactory->createAddressVerificationService('user', 'pass', $logger);

$record = $service->getRecordByAddress('53114', 'Bonn', 'Sträßchenweg', '10', 'Mustermann', 'Hans', null, $configName);

echo $record->getAddress()->getPostalCode(); // "53113"
echo $record->getAddress()->getStreetName(); // "Sträßchensweg"
echo $record->getStatusCodes(); // ['BAC100103', 'FNC400501', 'PDC030105', '…']

通过复杂地址获取记录

通过传递复杂请求对象来验证地址记录。

公共API

库中适合消费的组件包括

  • 服务
    • 服务工厂
    • 地址验证服务
    • 数据传输对象构建器
  • 数据传输对象
    • 包含纠正和状态码的响应记录,指示输入数据的问题

用法

$logger = new \Psr\Log\NullLogger();
$configName = 'default';

$serviceFactory = new \PostDirekt\Sdk\AddressfactoryDirect\Service\ServiceFactory();
$service = $serviceFactory->createAddressVerificationService('user', 'pass', $logger);

$requestBuilder = new \PostDirekt\Sdk\AddressfactoryDirect\RequestBuilder\RequestBuilder();
$requestBuilder->setMetadata($recordId = 1);
$requestBuilder->setAddress('Deutschland', '53114', 'Bonn', 'Sträßchenweg', '10');
$request = $requestBuilder->create();

$records = $service->getRecords([$request], null, $configName);
foreach ($records as $record) {
    echo $record->getRecordId(); // 1
    echo $record->getAddress()->getPostalCode(); // "53113"
    echo $record->getAddress()->getStreetName(); // "Sträßchensweg"
    echo $record->getStatusCodes(); // ['BAC100103', 'FNC400501', 'PDC030105', '…']
}