# SDICoop: configurazione PHP SoapClient / SoapServer (Apache) per invio e ricezione di test

**URL:** <https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528>\
**Category:** Fatturazione Elettronica\
**Created:** [8 Novembre 2018, 4:36pm UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528 "2018-11-08T16:36:54Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![Francesco\_Biegi](https://forum.italia.it/letter_avatar_proxy/v4/letter/f/eb8c5e/32.png) [@Francesco\_Biegi](https://forum.italia.it/u/Francesco_Biegi)\
**Post date:** [14 Novembre 2018, 4:37pm UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/22 "2018-11-14T16:37:48Z")

</div>

Ho trovato il motivo.  
Se confronto il mykey.key **generato in ambiente di produzione** , il suo md5 combacia con il file “Certificato Client” che ho scaricato da [sdi.fatturapa.gov](http://sdi.fatturapa.gov) in Strumenti -\> Certire il canale -\> Test interoperabilità -\> Downliad file per test.

Voi state state usando il .key generato dalla macchina di produzione… ?

---

<div class="post-metadata">

**Author:** ![arolando](https://forum.italia.it/letter_avatar_proxy/v4/letter/a/b9e5f3/32.png) [@arolando](https://forum.italia.it/u/arolando)\
**Post date:** [14 Novembre 2018, 4:39pm UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/23 "2018-11-14T16:39:30Z")

</div>

Assolutamente si! 😀 Probabilmente il tuo problema è quello.

---

<div class="post-metadata">

**Author:** ![Francesco\_Biegi](https://forum.italia.it/letter_avatar_proxy/v4/letter/f/eb8c5e/32.png) [@Francesco\_Biegi](https://forum.italia.it/u/Francesco_Biegi)\
**Post date:** [14 Novembre 2018, 4:41pm UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/24 "2018-11-14T16:41:25Z")

</div>

Uhm… visto che la sezione sul sito si chiama “Download file per test” io stavo usando la parte “test”. Ora provo col file di produzione… tanto cambiando l’endpoint della chiamata dovrebbe andar bene… al massimo carico la prima fattura al mitico pippo in prod 😒

---

<div class="post-metadata">

**Author:** ![Francesco\_Biegi](https://forum.italia.it/letter_avatar_proxy/v4/letter/f/eb8c5e/32.png) [@Francesco\_Biegi](https://forum.italia.it/u/Francesco_Biegi)\
**Post date:** [14 Novembre 2018, 4:53pm UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/25 "2018-11-14T16:53:24Z")

</div>

@arolando @cesco69 usando la chiave di prod sono riuscito ad andare avanti, adesso la chiamata viene effettuata ma mi risponde con **Internal error**

```
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
	<soapenv:Body>
		<soapenv:Fault xmlns:axis2ns1="http://schemas.xmlsoap.org/soap/envelope/">
			<faultcode>axis2ns1:Server</faultcode>
			<faultstring>Internal Error</faultstring>
			<detail/>
		</soapenv:Fault>
	</soapenv:Body>
</soapenv:Envelope>

```

Avete modo di passarmi un esempio di fattura xml? Nel KitDiTest.zip doveva esserci questo file, ma non c’era… quindi sono andato un pò a intuito… ma non è stato sufficiente…

grazie per l’aiuto e la pazienza!

---

<div class="post-metadata">

**Author:** ![cesco69](https://forum.italia.it/user_avatar/forum.italia.it/cesco69/32/1672_2.png) [@cesco69](https://forum.italia.it/u/cesco69)\
**Post date:** [14 Novembre 2018, 4:54pm UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/26 "2018-11-14T16:54:47Z")

</div>

prova questa [https://github.com/italia/fatturapa-testsdi/blob/master/tests/samples/invoices/IT01234567890\_FPR01.xml](https://github.com/italia/fatturapa-testsdi/blob/master/tests/samples/invoices/IT01234567890_FPR01.xml)

---

<div class="post-metadata">

**Author:** ![Francesco\_Biegi](https://forum.italia.it/letter_avatar_proxy/v4/letter/f/eb8c5e/32.png) [@Francesco\_Biegi](https://forum.italia.it/u/Francesco_Biegi)\
**Post date:** [14 Novembre 2018, 5:00pm UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/27 "2018-11-14T17:00:00Z")

</div>

Grazie!!! con quel file funziona!  
Senza questo forum, potevo starci 1000 anni…

---

<div class="post-metadata">

**Author:** ![Francesco\_Biegi](https://forum.italia.it/letter_avatar_proxy/v4/letter/f/eb8c5e/32.png) [@Francesco\_Biegi](https://forum.italia.it/u/Francesco_Biegi)\
**Post date:** [14 Novembre 2018, 5:02pm UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/28 "2018-11-14T17:02:07Z")

</div>

@cesco69 ah… ultima cosa… ma voi avete capito come funziona il flusso? Nel senso, io con questo RiceviFile mando loro la fattura… mi risponde con un IdentificativoSdi e poi… ?

Io ho fatto l’accredito per il flusso semplificato sia in trasmissione che in ricezione, ma poi non mi è molto chiaro che altre operazioni/endpoint si debbano chiamare…

---

<div class="post-metadata">

**Author:** ![arolando](https://forum.italia.it/letter_avatar_proxy/v4/letter/a/b9e5f3/32.png) [@arolando](https://forum.italia.it/u/arolando)\
**Post date:** [14 Novembre 2018, 5:07pm UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/29 "2018-11-14T17:07:47Z")

</div>

Guardati questo, il flusso è spiegato bene:

> **[italia/fatturapa-testsdi](https://github.com/italia/fatturapa-testsdi/tree/40a6440173f06c55fdf6e8dbb91cfcc22b090b05)**
>
> Sistema d'Interscambio di test. Contribute to italia/fatturapa-testsdi development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![cesco69](https://forum.italia.it/user_avatar/forum.italia.it/cesco69/32/1672_2.png) [@cesco69](https://forum.italia.it/u/cesco69)\
**Post date:** [14 Novembre 2018, 5:09pm UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/30 "2018-11-14T17:09:23Z")

</div>

Con **RiceviFile** invii la fattura ed ottiendi in risposta un IdentificativoSdi.  
Dopo alcuni secondi/minuti il tuo server soap di trasmissione (TrasmissioneFatture), riceverà la notifica.

 ![](https://raw.githubusercontent.com/italia/fatturapa-testsdi/master/images/trasmissione.png)

---

<div class="post-metadata">

**Author:** ![Francesco\_Biegi](https://forum.italia.it/letter_avatar_proxy/v4/letter/f/eb8c5e/32.png) [@Francesco\_Biegi](https://forum.italia.it/u/Francesco_Biegi)\
**Post date:** [14 Novembre 2018, 5:11pm UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/31 "2018-11-14T17:11:14Z")

</div>

Grazie! mi studio l’esempio quel repository!

---

<div class="post-metadata">

**Author:** ![simevo](https://forum.italia.it/user_avatar/forum.italia.it/simevo/32/198_2.png) [@simevo](https://forum.italia.it/u/simevo)\
**Post date:** [14 Novembre 2018, 6:19pm UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/32 "2018-11-14T18:19:32Z")

</div>

Come sviluppatori di `fatturapa-testsdi` ci fa molto piacere se il nostro lavoro vi è utile come riferimento documentale o come fonte di _code snippets_ !  
Nello spirito dell’ **open source** il modo migliore di restituire quello che il testsdi vi ha dato è darci dei feed-back costruttivi, es. **issues** e **PR** su github. Purtroppo in queste settimane non riusciamo a star dietro a tutto in tempo reale ma faremo del nostro meglio. Intanto grazie per tutti i contributi che avete già mandato !

---

<div class="post-metadata">

**Author:** ![cesco69](https://forum.italia.it/user_avatar/forum.italia.it/cesco69/32/1672_2.png) [@cesco69](https://forum.italia.it/u/cesco69)\
**Post date:** [15 Novembre 2018, 7:40am UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/33 "2018-11-15T07:40:00Z")

</div>

@simevo una curiosità.

Qual’è il ruolo del team digitale? non ho ben capito se siete un team legato a sogei o un entità a parte.

---

<div class="post-metadata">

**Author:** ![simevo](https://forum.italia.it/user_avatar/forum.italia.it/simevo/32/198_2.png) [@simevo](https://forum.italia.it/u/simevo)\
**Post date:** [15 Novembre 2018, 8:13am UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/34 "2018-11-15T08:13:54Z")

</div>

Ciao sul team digitale trovi tutto qui: [https://teamdigitale.governo.it/](https://teamdigitale.governo.it/) (è una struttura commissariale a supporto della Presidenza del Consiglio dei Ministri).

Noi (simevo) siamo una startup che oltre a partecipare qui sul forum da un bel po’, da giugno a ottobre 2018 abbiamo affiancato il teamdigitale su SPID e FattturaPA sviluppando moduli, pacchetti e altre cose.

---

<div class="post-metadata">

**Author:** ![arolando](https://forum.italia.it/letter_avatar_proxy/v4/letter/a/b9e5f3/32.png) [@arolando](https://forum.italia.it/u/arolando)\
**Post date:** [15 Novembre 2018, 12:09pm UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/35 "2018-11-15T12:09:39Z")

</div>

@simevo sicuramente quello che manca sono istruzioni per la configurazione virtual host per apache, se vuoi apro una issue come feature request in github.

---

<div class="post-metadata">

**Author:** ![Francesco\_Biegi](https://forum.italia.it/letter_avatar_proxy/v4/letter/f/eb8c5e/32.png) [@Francesco\_Biegi](https://forum.italia.it/u/Francesco_Biegi)\
**Post date:** [15 Novembre 2018, 4:26pm UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/36 "2018-11-15T16:26:09Z")

</div>

Dopo essere riuscito ieri ad inviare la fattura, ora sono impantanato nella ricezione della notifica di esito con errore: **General SSLEngine problem**

Oltretutto in fase di accreditamento io ho dato come endpoint questi due:  
TEST  
[https://test.dominio.it/sdi/in](https://test.dominio.it/sdi/in)  
[https://test.dominio.it/sdi/out](https://test.dominio.it/sdi/out)

PROD  
[https://dominio.it/sdi/in](https://dominio.it/sdi/in)  
[https://dominio.it/sdi/out](https://dominio.it/sdi/out)

Purtroppo però il mio sottodominio ha già un certificato https (senza contare dominio.it che è l’attuale server di produzione, che ha anch’esso il certificato HTTPS)

**Dovrei quindi** (anche se non ho la più pallida idea se si possa / come fare 😃 ) **riuscire ad installare entrambi i certificati sul server ?** (il mio più quello di SDI)

Tra l’altro, io uso nginx ( che già risponde a test.dominio.it) quindi ho dovuto fare un forward di **sdi/in** verso un server apache (dove volevo installare il certificato dell’SDI)

Voi come avete risolto ? Ho letto un pò di thread ma ho una confusione in testa assurda…

Ho provato poi a spegnere nginx e lasciare acceso solo apache e adesso mi da questo errore:  
`org.apache.axis2.AxisFault: HTTP ( 301 ) Moved Permanently address : https://26.2.162.231:80`

Tra l’altro, non posso nemmeno vedere il wsdl perche sul mio dominio è attivo **HSTS**.  
Quindi non riesco a capire se l’errore è su come ho configurato i certificati (ma li ho fatti come descritto poco sopra in questo thread) o nella classe php che ho scritto (che sono due righe):

```
<?php

class SdIRiceviNotificaHandler
{
    public function NotificaEsito($parametersIn)
    {
        $xmlString = base64_decode($parametersIn->File);

        return $xmlString;
    }
}

$wsdl = 'wsdl/SdIRiceviNotifica_v1.0.wsdl';

$soapServer = new \SoapServer($wsdl);
$soapServer->setClass('SdIRiceviNotificaHandler');
$soapServer->handle();
```

---

<div class="post-metadata">

**Author:** ![cesco69](https://forum.italia.it/user_avatar/forum.italia.it/cesco69/32/1672_2.png) [@cesco69](https://forum.italia.it/u/cesco69)\
**Post date:** [15 Novembre 2018, 4:34pm UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/37 "2018-11-15T16:34:38Z")

</div>

@Francesco_Biegi, NotificaEsito come da wsdl non deve ritornare nulla, quindi:

```
public function NotificaEsito($parametersIn)
{
    $xmlString = base64_decode($parametersIn->File);
}

```

per quanto riguarda la configurazione dei certificati sul server, se hai già dei certificati installati non puoi installarne altri. A meno di dinfigurazioni che ignoro, la regola è un solo certificato per host.

A questo punto credo ti convenga rifare l’accreditamento e cambiare gli endpoint.

---

<div class="post-metadata">

**Author:** ![Francesco\_Biegi](https://forum.italia.it/letter_avatar_proxy/v4/letter/f/eb8c5e/32.png) [@Francesco\_Biegi](https://forum.italia.it/u/Francesco_Biegi)\
**Post date:** [15 Novembre 2018, 4:45pm UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/38 "2018-11-15T16:45:44Z")

</div>

@cesco69 si ho già fatto la richiesta ieri. Magari se avessero spiegato un pò meglio le cose avrei evitato di dare un dominio già esistente…

Comunque ora in test ho spento nginx e vado solo con apache, quindi carico solo il certificato dell’agenzia.

Comunque, anche modificando **NotificaEsito** senza il return ottengo ancora:  
**org.apache.axis2.AxisFault: HTTP ( 301 ) Moved Permanently address : [https://26.2.162.231:80](https://26.2.162.231:80)**

Ho visto però che il file **SdIRiceviNotifica\_v1.0.wsdl** ha in **soapbind:address** la url **[https://servizi.fatturapa.it/ricevi\_notifica](https://servizi.fatturapa.it/ricevi_notifica)**. Io sto facendo le prove in test, devo cambiarlo in **[https://testservizi.fatturapa.it/ricevi\_notifica](https://testservizi.fatturapa.it/ricevi_notifica)**?

Questo è il file di apache:

```
    <VirtualHost _default_:443>
    	
    	ServerAdmin webmaster@localhost
    	DocumentRoot /myroot

    	ErrorLog ${APACHE_LOG_DIR}/error.log
    	CustomLog ${APACHE_LOG_DIR}/access.log combined

    	<IfModule mod_proxy_fcgi.c>
        	<FilesMatch \.php$>
        		SetHandler "proxy:unix:/run/php/php7.0-fpm.sock|fcgi://localhost/"
         	</FilesMatch>
    	</IfModule>

SSLEngine On

    # certificato firmato dall'Agenzia (fompato ASCII/PEM)
    SSLCertificateFile "certificates/SDI-xxxx-Server.pem"

    # chiave privata usata per generare la richiesta di certificato
    SSLCertificateKeyFile "certificates/prod_mykey.key"

    # certificato dell’autorità di certificatione dell’agenzia
    SSLCertificateChainFile "certificates/caentrate.der"

    SSLCACertificateFile "certificates/CA_Agenzia_delle_Entrate_all.pem"

    SSLStrictSNIVHostCheck off

    </VirtualHost>
```

---

<div class="post-metadata">

**Author:** ![cesco69](https://forum.italia.it/user_avatar/forum.italia.it/cesco69/32/1672_2.png) [@cesco69](https://forum.italia.it/u/cesco69)\
**Post date:** [15 Novembre 2018, 5:06pm UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/40 "2018-11-15T17:06:09Z")

</div>

gli endpoint a cui riferirti sono definiti nel nell’accordo di servizio e sono:

Nome WSDL: SdIRiceviFile\_v1.0.wsdl  
Endpoint: [https://servizi.fatturapa.it/ricevi\_file](https://servizi.fatturapa.it/ricevi_file)  
Endpoint di test: [https://testservizi.fatturapa.it/ricevi\_file](https://testservizi.fatturapa.it/ricevi_file)

Nome WSDL: SdIRiceviNotifica\_v1.0.wsdl  
Endpoint: [https://servizi.fatturapa.it/ricevi\_notifica](https://servizi.fatturapa.it/ricevi_notifica)  
Endpoint di test: [https://testservizi.fatturapa.it/ricevi\_notifica](https://testservizi.fatturapa.it/ricevi_notifica)

Nome WSDL: SdITrasmissioneFile\_v2.0.wsdl  
Endpoint: [https://servizi.fatturapa.it/dati-fattura](https://servizi.fatturapa.it/dati-fattura)  
Endpoint di test: [https://testservizi.fatturapa.it/dati-fattura](https://testservizi.fatturapa.it/dati-fattura)

---

<div class="post-metadata">

**Author:** ![Francesco\_Biegi](https://forum.italia.it/letter_avatar_proxy/v4/letter/f/eb8c5e/32.png) [@Francesco\_Biegi](https://forum.italia.it/u/Francesco_Biegi)\
**Post date:** [15 Novembre 2018, 5:07pm UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/41 "2018-11-15T17:07:41Z")

</div>

Si, quelli li ho. Quindi nel file SdiRiceviNotifica\_v1.0.wsdl ho messo **\<soapbind:address location=“[https://testservizi.fatturapa.it/ricevi\_notifica](https://testservizi.fatturapa.it/ricevi_notifica)” /\>** Ma continua a darmi quel maledetto 301 …

Per ricevere la notifica, devo modificare qualche altro file che tu sappia ? La configurazione di Apache ho provato a riguardarla ma mi pare uguale a come l’avevi descritta poco sopra…

Hai mai avuto quell’errore ? Non so piu dove sbattere la testa… e sono solo all’inizio (2° giorno)

---

<div class="post-metadata">

**Author:** ![cesco69](https://forum.italia.it/user_avatar/forum.italia.it/cesco69/32/1672_2.png) [@cesco69](https://forum.italia.it/u/cesco69)\
**Post date:** [15 Novembre 2018, 5:11pm UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/42 "2018-11-15T17:11:43Z")

</div>

ma non devi modificare i wdls, devi solo indicare la location nel SdiSoapClient, per il client e non fare null’altro per il SoapServer

[Pagina precedente](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528.md?page=1)

[Pagina seguente](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528.md?page=3)
