All Projects → taocomp → Php Sdicoop Client

taocomp / Php Sdicoop Client

Licence: gpl-3.0
A PHP package for connecting to Italian Exchange System (aka SdI) web services. (Pacchetto PHP per inviare fatture e notifiche ai webservices del SdI).

Projects that are alternatives of or similar to Php Sdicoop Client

Php E Invoice It
A PHP package for managing italian e-invoice and notice XML formats. (Pacchetto PHP per gestire il formato XML di fatture e notifiche come richiesto dal SdI).
Stars: ✭ 53 (+278.57%)
Mutual labels:  invoice, open-source, opensource
Beefun Pro
Github client for iOS in Swift.
Stars: ✭ 172 (+1128.57%)
Mutual labels:  open-source, opensource, client
Awesome Open Source Supporters
⭐️ A curated list of companies that offer their services for free to Open Source projects
Stars: ✭ 457 (+3164.29%)
Mutual labels:  open-source, opensource
Wellcommerce
Open-source E-Commerce software
Stars: ✭ 499 (+3464.29%)
Mutual labels:  open-source, opensource
Enclosure Picroft
Mycroft interface for Raspberry Pi environment
Stars: ✭ 649 (+4535.71%)
Mutual labels:  open-source, opensource
Mumble
Mumble is an open-source, low-latency, high quality voice chat software.
Stars: ✭ 4,418 (+31457.14%)
Mutual labels:  open-source, client
Cortx
CORTX Community Object Storage is 100% open source object storage uniquely optimized for mass capacity storage devices.
Stars: ✭ 426 (+2942.86%)
Mutual labels:  open-source, opensource
Hacktoberfest 2020
Welcome to Open-source! Simply add your details to contributors | Repo for Hacktoberfest 2020 ✅
Stars: ✭ 621 (+4335.71%)
Mutual labels:  open-source, opensource
Augur
Python library and web service for Open Source Software Health and Sustainability metrics & data collection.
Stars: ✭ 304 (+2071.43%)
Mutual labels:  open-source, opensource
Adapt
Adapt Intent Parser
Stars: ✭ 690 (+4828.57%)
Mutual labels:  open-source, opensource
Quietweather
☀️ Develop a weather wechat mini program application in two days - 两天撸一个天气应用微信小程序
Stars: ✭ 677 (+4735.71%)
Mutual labels:  open-source, opensource
Librehardwaremonitor
Libre Hardware Monitor, home of the fork of Open Hardware Monitor
Stars: ✭ 685 (+4792.86%)
Mutual labels:  open-source, opensource
Freedomotic
Open IoT Framework
Stars: ✭ 354 (+2428.57%)
Mutual labels:  open-source, opensource
Hashover Next
This branch will be HashOver 2.0
Stars: ✭ 353 (+2421.43%)
Mutual labels:  open-source, opensource
Aimet
AIMET is a library that provides advanced quantization and compression techniques for trained neural network models.
Stars: ✭ 453 (+3135.71%)
Mutual labels:  open-source, opensource
Open Pixel Art
A collaborative pixel art project to teach people how to contribute to open-source
Stars: ✭ 331 (+2264.29%)
Mutual labels:  open-source, opensource
Thor
DIY 3D Printable Robotic Arm
Stars: ✭ 556 (+3871.43%)
Mutual labels:  open-source, opensource
Juejin
💰 Unofficial JueJin wechat mini program application - 掘金非官方微信小程序
Stars: ✭ 771 (+5407.14%)
Mutual labels:  open-source, opensource
Video Hub App
Official repository for Video Hub App
Stars: ✭ 272 (+1842.86%)
Mutual labels:  open-source, opensource
Online
Collabora Online is a collaborative online office suite based on LibreOffice technology. This is also the source for the Collabora Office apps for iOS and Android.
Stars: ✭ 278 (+1885.71%)
Mutual labels:  open-source, opensource

#+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]]

If you need a "ready to start" solution, or a consultancy for your PHP project, please feel free to contact us at [[mailto:[email protected]][[email protected]]].

  • 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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].