klement-alexander/php-sdicoop-server

一个用于实现意大利交换系统所需网络服务的PHP包 - 鸣谢taocomp!

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

This package is auto-updated.

Last update: 2024-09-13 02:28:43 UTC


README

一个用于实现意大利交换系统(又称“SdI”)所需网络服务的PHP包。

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

请参考

请查看 Forum Italia - Fatturazione Elettronica 以获取服务器配置、互操作性测试等信息。特别是

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

如果您需要一个“即用即装”的解决方案,或者需要为您的PHP项目提供咨询,请随时通过 e-invoicing@taocomp.com 联系我们。

快速入门

“TrasmissioneFatture”网络服务

只需将 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');

“RicezioneFatture”网络服务

只需将 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 klement-alexander/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;

设置

“TrasmissioneFatture”网络服务

  • 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);
}

“RicezioneFatture”网络服务

按照“TrasmissioneFatture”中的说明执行。

日志

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

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

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

鸣谢

我们要感谢所有在 Forum Italia - Fatturazione Elettronica 上分享他们的代码片段和任何可用信息的贡献者。

许可

GPLv3。