uwkluis/client

UwKluis API 的客户端包


README

Latest Version on Packagist Software License Total Downloads

本包可帮助连接到 UwKluis API。在本域根目录可以找到兼容 OpenAPI 的模式以及由 Swagger 生成的关于各个端点的文档。

结构

src/
src/Consumer
src/Exception
src/Organization
src/Traits
tests/

安装

通过 Composer

$ composer require uwkluis/client

使用方法

首先设置路由和控制器来处理 OAuth2 回调。以某种方式存储(来自)令牌响应的数据。

$config = new \UwKluis\Client\Organization\Config(
    'registered-client-name',
    'registered-callback-url',
    1,
    'registered-client-secret',
    ['read-person-data', 'read-write-mortgages-data']
);
$guzzleClient = new GuzzleHttp\Client();
$organizationConnect = new UwKluis\Client\Organization\Connect($config, $guzzleClient);
$accessTokenResponse = $organizationConnect->processResponse($psr7request);
$accessToken = $accessTokenResponse->getAccessToken();
$refreshToken = $accessTokenResponse->getRefreshToken();
$expiration = $accessTokenResponse->getExpiration();

将组织用户发送到 OAuth2 URL 以建立连接。响应将发送到回调路由。

/** @var $connect UwKluis\Client\Organization\Connect */
echo '<a href="' . $connect->getAuthorizeUrl() . '">Connect</a>';

然后可以根据用户的电话号码和电子邮件地址发送邀请。您的客户端现在需要之前存储的访问令牌。结果响应对象将包含组织消费者 ID 和 UFO 消费者 ID(一个 UUID)。为未来的请求存储这些信息。

$organizationConsumerId = 'JOHNSON_AMSTERDAM_001';
$consumerConnect = new \UwKluis\Client\Consumer\Connect($config, $guzzleClient);
$connection = $consumerConnect->inviteConsumer('johnson@example.org', '0612345678');
$uwKluisConsumerId = $connection->getUwKluisConsumerId();

如果用户的组织已经建立了连接,请求将失败,抛出 \UwKluis\Client\Exception\ConsumerConnectionConflict 异常,该异常包含冲突的连接。这可以通过 \UwKluis\Client\Exception\ConsumerConnectionConflict::getConflictingConnection() 提取。可以使用以下方式检索有关现有连接的信息,例如上述异常返回的信息

 /** @var $consumerConnect \UwKluis\Client\Consumer\Connect */
 /** @var $token \Lcobucci\JWT\Token */
 /** @var $uwKluisConsumerId \Ramsey\Uuid\UuidInterface */
 /** @var $connection \UwKluis\Client\Consumer\Connect */
$connection = $consumerConnect->getConnectionStatus($token, $uwKluisConsumerId);

如果已经向消费者发送了邀请,但他们因为电话号码或电子邮件地址不正确或找不到邀请而无法接受,可以使用现有的连接 ID 发送新的邀请

/** @var $consumerConnect \UwKluis\Client\Consumer\Connect */
/** @var $token \Lcobucci\JWT\Token */
/** @var $uwKluisConsumerId \Ramsey\Uuid\UuidInterface */
$consumerConnect->updateAndReinviteConsumer($token, $uwKluisConsumerId, 'newEmail@example.org', '0612345678');

首先使用组织的访问令牌、组织消费者 ID 和所需的消费者文档 JSON 模式版本请求当前消费者文档

$dossier = new \UwKluis\Client\Consumer\Dossier($config, $guzzleClient);
$response = $dossier->getData(
    $accessToken,
    $uwKluisConsumerId,
    1
);
$data = $response['data'];

如果您想更新消费者文档数据,首先将检索到的数据与您自己的数据合并,然后使用 updateData() 方法发送回该数据。

/** @var array $mergedData */
$dossier->updateData(
    $accessToken,
    $uwKluisConsumerId,
    $mergedData
    1,
    false
);

Webhooks

UwKluis API 提供了多个 webhook 选项,因此您的客户端可以在消费者连接发生变化时(例如,当消费者建立连接或更改授予的权限)或当消费者文档发生变化时(无论是消费者还是另一个客户端应用程序或组织)收到通知。在组织用户使用 OAuth2 建立连接后,可以注册 webhooks。uwkluis/webhook-client 包可以帮助在客户端应用程序中实现 webhooks。

测试

$ composer test

贡献

有关详细信息,请参阅 CONTRIBUTINGCODE_OF_CONDUCT

安全

如果您发现任何安全相关的问题,请通过 info@hypotheekbond.nl 发送电子邮件,而不是使用问题跟踪器。

许可证

MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件