Download the PHP package taocomp/php-sdicoop-client without Composer
On this page you can find all versions of the php package taocomp/php-sdicoop-client. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download taocomp/php-sdicoop-client
More information about taocomp/php-sdicoop-client
Files in taocomp/php-sdicoop-client
Package php-sdicoop-client
Short Description A PHP package for connecting to Italian Exchange System (aka SdI) web services
License GPL-3.0-or-later
Informations about the package php-sdicoop-client
+TITLE: PHP SdICoop - Client
A PHP package for connecting to [[https://www.fatturapa.gov.it/export/fatturazione/en/sdi.htm?l=en][Italian Exchange System (aka "SdI")]] web services.
/(Pacchetto PHP per inviare fatture e notifiche ai webservices del SdI)./
Please refer to
- [[https://github.com/taocomp/php-sdicoop-server][PHP SdICoop - Server]] to implement your web services required by SdI
- [[https://github.com/taocomp/php-e-invoice-it][PHP E-invoice It]] for managing italian e-invoice and notice XML formats
See [[https://forum.italia.it/c/fattura-pa][Forum Italia - Fatturazione Elettronica]] for server configuration, interoperability tests, etc. In particular:
- Apache configuration :: [[https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314][Accreditamento SDICoop: configurazione SSL su Apache - Fatturazione Elettroni...]]
-
Interoperability tests :: [[https://forum.italia.it/t/test-interoperabilita-soluzioni/4370][Test Interoperabilità Soluzioni - Fatturazione Elettronica - Forum Italia]]
- Getting started ** Dependencies
- PHP >=5.5
- ~php-curl~
- ~php-soap~
** Install
*** Composer
+BEGIN_SRC
composer require taocomp/php-sdicoop-client
+END_SRC
*** Manually
- Clone/download the repository
- ~require_once('/path/to/php-sdicoop-client/vendor/autoload.php');~
*** Namespaces Please note namespace is changed (v0.1.5), it is now ~Taocomp\Einvoicing\SdicoopClient~.
So to use e.g. ~Client~ class:
+BEGIN_SRC
use \Taocomp\Einvoicing\SdicoopClient\Client;
+END_SRC
** Setup According to Italian Exchange System (aka SdI), you need:
- a client key
- a client certificate
- a CA certificate to send invoices and notices to SdI web services.
Additionally you must provide an endpoint to connect to and the correspondent WSDL for each web service.
You can configure key and certs as follow:
+BEGIN_SRC
Client::setPrivateKey('/path/to/client.key'); Client::setClientCert('/path/to/client.pem'); Client::setCaCert('/path/to/ca.pem');
+END_SRC
You can also configure a proxy if needed:
+BEGIN_SRC
Client::setProxyUrl('proxy_url'); Client::setProxyAuth('username:password');
+END_SRC
And then you can instantiate the client by providing endpoint/WSDL.
Web service ~SdIRiceviFile~ (test) for sending invoices:
+BEGIN_SRC
$client = new Client(array( 'endpoint' => 'https://testservizi.fatturapa.it/ricevi_file', 'wsdl' => '/path/to/php-sdicoop-client/assets/wsdl/SdIRiceviFile_v1.0.wsdl' ));
+END_SRC
Web service ~SdIRiceviNotifica~ (test) for sending notices:
+BEGIN_SRC
$client = new Client(array( 'endpoint' => 'https://testservizi.fatturapa.it/ricevi_notifica', 'wsdl' => '/path/to/php-sdicoop-client/assets/wsdl/SdIRiceviNotifica_v1.0.wsdl' ));
+END_SRC
Or you can pass all parameters (key, certs, wsdl, endpoint) to client constructor:
+BEGIN_SRC
$client = new Client(array( 'key' => '/path/to/client.key', 'cert' => '/path/to/client.pem', 'ca_cert' => '/path/to/ca.pem', 'endpoint' => 'https://testservizi.fatturapa.it/ricevi_file', 'wsdl' => '/path/to/php-sdicoop-client/assets/wsdl/SdIRiceviFile_v1.0.wsdl' ));
+END_SRC
** Send invoices to SdI (web service "SdIRiceviFile")
+BEGIN_SRC
$fileSdI = new FileSdIBase(); $fileSdI->load('/path/to/invoice.xml'); $response = new RispostaSdIRiceviFile($client->RiceviFile($fileSdI));
// Process response: // ----------------------------------------- // $id = $response->IdentificativoSdI; // $datetime = $response->DataOraRicezione; // $error = $response->Errore; // -----------------------------------------
+END_SRC
See ~examples/invoice.php~ for a working example.
You can also send ~\Taocomp\Einvoicing\FatturaElettronica~ objects: see [[https://github.com/taocomp/php-e-invoice-it][https://github.com/taocomp/php-e-invoice-it]].
** Send notices to SdI (web service "SdIRiceviNotifica", endpoint test)
+BEGIN_SRC
$fileSdI = new FileSdI(); $fileSdI->load('/path/to/notice.xml'); $response = new RispostaSdINotificaEsito($client->NotificaEsito($fileSdI));
// Process response: // ---------------------------------- // $result = $response->Esito; // $discard = $response->ScartoEsito; // $discardFilename = $discard->NomeFile; // $discardFile = $discard->File; // ----------------------------------
+END_SRC
See ~examples/notice.php~ for a working example.
You can also send ~\Taocomp\Einvoicing\EsitoCommittente~ objects: see [[https://github.com/taocomp/php-e-invoice-it][https://github.com/taocomp/php-e-invoice-it]].
- Credits We want to thank all contributors of [[https://forum.italia.it/c/fattura-pa][Forum Italia - Fatturazione Elettronica]] who have shared their snippets and any available info.
Thanks to Luca Cristofalo for testing the code on his old PHP 5.5.38. :-)
- License GPLv3.