dfridrich / czech-data-box
PHP 中的数据存储库通信库。
v1.3.1
2023-03-11 21:22 UTC
Requires
- php: >=8.0.0
- ext-soap: *
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9
- squizlabs/php_codesniffer: ^3.7
- symfony/var-dumper: ^6.0
README
PHP 中的数据存储库通信库。
使用 Composer 安装
composer require dfridrich/czech-data-box
示例
以下示例使用 Defr\CzechDataBox\DataBoxSimpleApi
,它提供对数据存储库的简单访问。如果您想使用标准访问,可以访问这些 Web 服务
<?php $dataBox->DmOperationsWebService(); $dataBox->DmInfoWebService(); $dataBox->DataBoxSearch(); $dataBox->DataBoxAccess(); $dataBox->IsdsStat();
连接到数据存储库
<?php require "../vendor/autoload.php"; use Defr\CzechDataBox\DataBox; $dataBox = new DataBox(); $dataBox->loginWithUsernameAndPassword("login", "heslo", true); // Pro ostrou verzi $dataBox->loginWithUsernameAndPassword("login", "heslo", false); // Pro verzi s testovacím přístupem $dataBox->loginWithCertificateAndPassword("certifikat.cer"); // Nebo pouzijte prihlaseni certifikatem /** @var \Defr\CzechDataBox\DataBoxSimpleApi $simpleApi */ $simpleApi = $dataBox->getSimpleApi();
数据存储库信息
$simpleApi->getDataBoxInfo(); // vrací Defr\CzechDataBox\Api\tDbOwnerInfo
登录用户信息
$simpleApi->getUserInfo(); // Vrací Defr\CzechDataBox\Api\tDbUserInfo;
密码过期信息
$simpleApi->getPasswordExpires(); // \DateTime|null
下载接收到的消息
$days = 90; $limit = 1000; $messages = $simpleApi->getListOfReceivedMessages($days, $limit); foreach ($messages as $message) { echo "<h2>Msg# " . $message->getDmID() . "</h2>"; // Defr\CzechDataBox\Api\tIdDm var_dump($message); echo "<h3>Signed message</h3>"; // Defr\CzechDataBox\DataBoxMessageFile var_dump($simpleApi->downloadSignedReceivedMessage($message->getDmID())); echo "<h3>Delivery info</h3>"; // Defr\CzechDataBox\DataBoxMessageFile var_dump($simpleApi->downloadDeliveryInfo($message->getDmID())); echo "<h3>Attachments</h3>"; // Defr\CzechDataBox\DataBoxMessageAttachment[] var_dump($simpleApi->getReceivedDataMessageAttachments($message->getDmID())); }
下载发送的消息
$messages = $simpleApi->getListOfSentMessages(); foreach ($messages as $message) { echo "<h2>Msg# " . $message->getDmID() . "</h2>"; var_dump($message); echo "<h3>Signed message</h3>"; var_dump($simpleApi->downloadSignedSentMessage($message->getDmID())); echo "<h3>Delivery info</h3>"; var_dump($simpleApi->downloadDeliveryInfo($message->getDmID())); }
根据 ID 查找数据存储库
$simpleApi->findDataBoxById('wucb4dd');
发送包含附件的数据消息
数据存储库不接收所有类型的文件,已测试 pdf、jpg、png(大多数二进制类型应该可以通过)。TXT 文件只有在两次 base64 编码后才能发送,结果是接收到的数据消息包含在 txt 文件内的 base64 编码的内容
$files = [ '/path/to/a/file.pdf', ]; $message = $simpleApi->createBasicDataMessage('wucb4dd', 'Test', $files); $sentMessage = $simpleApi->sendDataMessage($message); if ($sentMessage->getDmStatus()->getDmStatusCode() !== "0000") { // Handle errors }
总结
所有示例都位于 examples 文件夹中。要连接到数据存储库,您需要登录名和密码或测试访问权限,这可以通过填写此表格获得。
一旦您有了访问凭据,请创建 config.ini(从 config.ini.dist)。
链接
- 数据存储库测试环境 - https://www.czebox.cz/
- 数据存储库生产环境 - https://www.mojedatovaschranka.cz/
贡献
我很乐意接受任何改进建议 :-)
@TODO
- 基于姓名、姓氏、公司或机构名称的简单搜索