scholtz/eet

PHP 版 EET (电子销售记录) 客户端 API

1.2.5 2017-03-09 09:14 UTC

This package is auto-updated.

Last update: 2024-08-29 04:31:17 UTC


README

此代码是 EET ("elektronická evidence tržeb") 在 PHP 中的实现。请注意,如果您的计算机连接到互联网,则此库即使在您的本地主机上也能正常工作。

安装

composer require "fritak/eet"

要求

最低要求是您的 Web 服务器上安装 PHP 5.6。以下库和 php 扩展是必需的:

设置

配置示例

{
    "certificate": {
        "path": "./certificate/01000003.p12",
        "password": "eet"
    },
    "wsdlPath": "./soapFiles/EETServiceSOAP.wsdl",
    "defaultValues": {
        "dic_popl": "CZ1212121218",
        "id_provoz": "273",
        "id_pokl": "1"
    },
    "timeout": 10,
    "connectionTimeout": 3
}
  • 将证书(PKCS#12)移动到您的路径。有关如何获取证书的信息,或使用 "/example/certificate" 目录中的证书进行测试(仅限测试)。
  • 设置 EET 的 wsdl 文件路径(您还需要包括 XSD 模式)。

注意

基本用法

use Fritak\eet\Sender;

$sender = new Sender(__DIR__ . '/config.json'); // load Sender with configuration

$sender->addReceipt(['uuid_zpravy' => 'b3a09b52-7c87-4014-a496-4c7a53cf9125', 'porad_cis' => 68, 'celk_trzba' => 546]);

// You can let uuid_zpravy empty, it will be  automatically generated
$sender->addReceipt(['porad_cis' => 69, 'celk_trzba' => 748]);

foreach($sender->sendAllReceipts() AS $response)
{
    $response->Potvrzeni->fik; // Your FIK - Fiscal Identification Code ("Fiskální identifikační kód")
}     

稍后更改证书或默认值

$sender->changeCertificate($certificate, $password);
$sender->changeDefaultValues($dic, $workshopId, $cashRegisterId);

高级用法 - 收据

use Fritak\eet\Sender;
use Fritak\eet\Receipt;

$sender = new Sender(__DIR__ . '/config.json'); // load Sender with configuration

$receipt = new Receipt();
$receipt->uuid_zpravy = 'b3a09b52-7c87-4014-a496-4c7a53cf9125'; // Or empty, it will be  automatically generated
$receipt->porad_cis   = '68';
$receipt->celk_trzba  = 546;

$receipt->dic_popl    = 'CZ1212121218';
$receipt->id_provoz   = '273';
$receipt->id_pokl     = '1';
$receipt->dat_trzby   = new \DateTime();

// Now we try dry run. Returns boolean TRUE/FALSE
if ($sender->dryRunSend($receipt))
{
    // Send receipt
    $fik = $sender->send($receipt)->Potvrzeni->fik;
}

Nette 集成

Nette 框架是一个开源框架,用于使用 PHP 5 和 7 创建 Web 应用程序。您的应用程序中已有基本集成。

将库包含到项目中。将配置文件包含到您的参数.neon 中。

parameters:
	senderEetParameters:
		certificate:
			path: ''
			password: ''
		wsdlPath : ''
		defaultValues:
			dic_popl: ''
			id_provoz: ''
			id_pokl: ''
services:
	senderEet: Fritak\eet\Sender(%senderEetParameters%)

就这样!现在您可以使用它,例如在 presenter 的动作中,如上所述。

$sender = $this->context->getService('senderEet');
$sender->addReceipt(['porad_cis' => 85, 'celk_trzba' => 9875]);

foreach($sender->sendAllReceipts() AS $response)
{
    $response->Potvrzeni->fik;
}

信息