Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dfridrich/czechdatabox
Knihovna pro komunikaci s datovou schránkou v PHP
https://github.com/dfridrich/czechdatabox
Last synced: about 2 months ago
JSON representation
Knihovna pro komunikaci s datovou schránkou v PHP
- Host: GitHub
- URL: https://github.com/dfridrich/czechdatabox
- Owner: dfridrich
- License: mit
- Created: 2015-08-22T15:56:08.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2023-03-11T21:23:50.000Z (almost 2 years ago)
- Last Synced: 2024-10-29T22:46:20.264Z (2 months ago)
- Language: PHP
- Size: 303 KB
- Stars: 25
- Watchers: 7
- Forks: 10
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CzechDataBox
[![PHPUnit](https://github.com/dfridrich/CzechDataBox/actions/workflows/test.yaml/badge.svg)](https://github.com/dfridrich/CzechDataBox/actions/workflows/test.yaml)
[![Latest Stable Version](https://poser.pugx.org/dfridrich/czech-data-box/v/stable)](https://packagist.org/packages/dfridrich/czech-data-box)
[![Total Downloads](https://poser.pugx.org/dfridrich/czech-data-box/downloads)](https://packagist.org/packages/dfridrich/czech-data-box)
[![Monthly Downloads](https://poser.pugx.org/dfridrich/czech-data-box/d/monthly)](https://packagist.org/packages/dfridrich/czech-data-box)
[![License](https://poser.pugx.org/dfridrich/czech-data-box/license)](https://packagist.org/packages/dfridrich/czech-data-box)Knihovna pro komunikaci s datovou schránkou v PHP.
![Logo datových schránek](Resources/logo.png)
## Instalace pomocí Composeru
`composer require dfridrich/czech-data-box`
## Příklady
Níže uvedené příklady používají `Defr\CzechDataBox\DataBoxSimpleApi`, které nabízí jednodušší přístup k datové schránce. Pokud chcete použít standardní přístup, můžete využít tyto web services:
```php
DmOperationsWebService();
$dataBox->DmInfoWebService();
$dataBox->DataBoxSearch();
$dataBox->DataBoxAccess();
$dataBox->IsdsStat();
```### Připojení k datové schránce
```php
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();
```### Informace o datové schránce
```php
$simpleApi->getDataBoxInfo(); // vrací Defr\CzechDataBox\Api\tDbOwnerInfo
```### Informace o přihlášeném uživateli
```php
$simpleApi->getUserInfo(); // Vrací Defr\CzechDataBox\Api\tDbUserInfo;
```### Informace o expiraci hesla
```php
$simpleApi->getPasswordExpires(); // \DateTime|null
```### Stažení přijatých zpráv
```php
$days = 90;
$limit = 1000;$messages = $simpleApi->getListOfReceivedMessages($days, $limit);
foreach ($messages as $message) {
echo "Msg# " . $message->getDmID() . "
";
// Defr\CzechDataBox\Api\tIdDm
var_dump($message);echo "
Signed message
";
// Defr\CzechDataBox\DataBoxMessageFile
var_dump($simpleApi->downloadSignedReceivedMessage($message->getDmID()));echo "
Delivery info
";
// Defr\CzechDataBox\DataBoxMessageFile
var_dump($simpleApi->downloadDeliveryInfo($message->getDmID()));echo "
Attachments
";
// Defr\CzechDataBox\DataBoxMessageAttachment[]
var_dump($simpleApi->getReceivedDataMessageAttachments($message->getDmID()));
}
```### Stažení odeslaných zpráv
```php
$messages = $simpleApi->getListOfSentMessages();
foreach ($messages as $message) {
echo "Msg# " . $message->getDmID() . "
";
var_dump($message);echo "
Signed message
";
var_dump($simpleApi->downloadSignedSentMessage($message->getDmID()));echo "
Delivery info
";
var_dump($simpleApi->downloadDeliveryInfo($message->getDmID()));
}```
### Nalezení datové schránky na základě jejího ID
```php
$simpleApi->findDataBoxById('wucb4dd');
```### Odeslání datové zprávy včetně přílohy
Datová schránka nepřijímá všechny typy souborů, testováno na pdf, jpg, png (Většina binary typů by měla projít).
TXT soubory lze odeslat pouze, kdyz se 2x base64 encodují, výsledkem je přijatá datová zpráva s base64 encodovaným contentem uvnitř txt souboru```php
$files = [
'/path/to/a/file.pdf',
];
$message = $simpleApi->createBasicDataMessage('wucb4dd', 'Test', $files);
$sentMessage = $simpleApi->sendDataMessage($message);
if ($sentMessage->getDmStatus()->getDmStatusCode() !== "0000") {
// Handle errors
}
```## Závěrem
Všechny příklady nejdete ve složce examples. Pro připojení k datové schránce budete potřebovat login a heslo nebo testovací přístup, který lze získat na základě vyplnění [tohoto formuláře](https://www.datoveschranky.info/documents/1744842/1746073/zadost_zrizeni_testovaci_ds.zfo/4b75d5bf-0272-4305-9cef-8ec8f019e9d3).
Jakmile přístupové údaje budete mít, vytvořte config.ini (z config.ini.dist).
## Odkazy
- Testovací prostředí datových schránek - https://www.czebox.cz/
- Ostré prostředí datových schránek - https://www.mojedatovaschranka.cz/## Contributing
Budu rád za každý návrh na vylepšení :-)
## @TODO
- Jednoduché hledání na základě jména, příjmení nebo názvu firmy nebo úřadu