taocomp/php-sdicoop-server

用于实现意大利交易所系统所需Web服务的PHP包

v0.1.2 2018-12-27 14:57 UTC

This package is auto-updated.

Last update: 2024-09-17 18:33:24 UTC


README

用于实现意大利交易所系统(即“SdI”)所需的Web服务的PHP包。

(Pacchetto PHP per l’implementazione dei webservices TrasmissioneFatture e RicezioneFatture richiesti dal SdI)。

请参考

请参阅 意大利论坛 - 电子发票 了解服务器配置、互操作性测试等。特别是

Apache配置
Accreditamento SDICoop: configurazione SSL su Apache - Fatturazione Elettroni…
互操作性测试
Test Interoperabilità Soluzioni - Fatturazione Elettronica - Forum Italia

快速入门

“Fatture Trasmissione” Web服务

只需将 examples/tramissione-fatture.php 包含在您的端点中。例如,如果您的测试端点是

https://test.example.com/trasmissione/index.php

请将以下代码放入您的 index.php

<?php
require_once('/path/to/php-sdicoop-server/examples/trasmissione-fatture.php');

“Fatture Ricezione” Web服务

只需将 examples/ricezione-fatture.php 包含在您的端点中。例如,如果您的测试端点是

https://test.example.com/ricezione/index.php

请将以下代码放入您的 index.php

<?php
require_once('/path/to/php-sdicoop-server/examples/ricezione-fatture.php');

入门

依赖项

  • PHP 5.5+
  • php-soap

安装

Composer

composer require taocomp/php-sdicoop-server

手动

  • 克隆/下载存储库
  • require_once('/path/to/php-sdicoop-server/vendor/autoload.php');

命名空间

请注意命名空间已更改(v0.1.1),现在是 Taocomp\Einvoicing\SdicoopServer

因此,例如,要使用 WebService

use \Taocomp\Einvoicing\SdicoopServer\WebService;

设置

“Fatture Trasmissione” Web服务

  • examples/TrasmissioneFattureHandler.php 复制到您的项目中某个位置,并添加逻辑以在文件系统或数据库中保存发票和通知
  • 然后将 examples/trasmissione-fatture.php 的内容复制到您的端点文件中
  • 相应地修改路径

例如,如果您的处理程序类是

class MyTrasmissioneFattureHandler
{
    //...
}

保存到 /path/to/MyTrasmissioneFattureHandler.php,那么您的端点中的代码将是

ini_set("soap.wsdl_cache_enabled", 0);
ini_set('soap.wsdl_cache_ttl', 0);

use \Taocomp\Einvoicing\SdicoopServer\WebService;

try
{
    require_once('/path/to/php-sdicoop-server/vendor/autoload.php');
    require_once('/path/to/MyTrasmissioneFattureHandler.php');

    $wsdl = '/path/to/php-sdicoop-server/assets/wsdl/TrasmissioneFatture_v1.1.wsdl';
    $ws = new WebService($wsdl);
    $ws->setClass('\MyTrasmissioneFattureHandler');
    $ws->handle();
}
catch (\Exception $e)
{
    WebService::log($e->getMessage(), LOG_ERR);
}

“Fatture Ricezione” Web服务

按照“Fatture Trasmissione”中的相同说明操作。

日志

两个Web服务都写入系统日志。

例如,当您收到“RicevutaConsegna”通知时

Dec 14 23:52:32 web Taocomp\Einvoicing\SdicoopServer\WebService: RicevutaConsegna IdentificativoSdI:7045996 NomeFile:ITXXXXXXXXXXX_00001_RC_002.xml

鸣谢

我们要感谢所有为 意大利论坛 - 电子发票 贡献的参与者,他们分享了他们的代码片段和任何可用的信息。

许可

GPLv3.