dfridrich/czech-data-box

PHP 中的数据存储库通信库。

v1.3.1 2023-03-11 21:22 UTC

This package is auto-updated.

Last update: 2024-09-12 00:19:15 UTC


README

PHPUnit Latest Stable Version Total Downloads Monthly Downloads License

PHP 中的数据存储库通信库。

Logo datových schránek

使用 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)。

链接

贡献

我很乐意接受任何改进建议 :-)

@TODO

  • 基于姓名、姓氏、公司或机构名称的简单搜索