# 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:** 1\
**Showing post:** 11

<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, 9:24am UTC](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528/11 "2018-11-14T09:24:14Z")

</div>

ciao @arolando ho aggiornato il SdiSoapClient (rivedi il mio messaggio sopra) aggiungendo il supporto al formato MTOM che prima non funzionava bene.

Ti consiglio di aggiornarti.

Per quanto riguarda la parte server puoi utilizzare tranquillamante il SoapServer di php, io ho fatto così e mi funziona tranquillamente.

RicezioneFattureService.php

```
class RicezioneFattureService
{
    const ER01 = 'ER01';

    public function RiceviFatture($parametersIn)
    {
        $rispostaRiceviFatture = new \stdClass();
        $rispostaRiceviFatture->Esito = self::ER01;
        return $rispostaRiceviFatture;
    }
    
    public function NotificaDecorrenzaTermini($parametersIn)
    {
        
    }
}

```

esempio di utilizzo

```
$wsdl = '/wsdl/RicezioneFatture_v1.0.wsdl';

$ricezioneFattureService = new RicezioneFattureService();

$soapServer = new \SoapServer($wsdl);
$soapServer->setObject($ricezioneFattureService);
$soapServer->handle();

```

la parte tosta è mettere i certificati sul server, se sei su Apache

```
SSLEngine On

# certificato firmato dall'Agenzia (fompato ASCII/PEM)
SSLCertificateFile "/cert/CERT/sdi/SDI-XXXXXXXXX-Server.pem"

# chiave privata usata per generare la richiesta di certificato
SSLCertificateKeyFile "/cert/CERT/sdi/private.key"

# certificato dell’autorità di certificatione dell’agenzia
SSLCertificateChainFile "/cert/CERT/sdi/caentrate.der"

# concatenazione del certificato dell'autorità di certificazione dell'agenzia 
# più il certificato dell’autorità di certificazione di test (caentrate.der + CAEntrateTest.der). 
# In questo modo lo stesso server accetta le chiamate sia dal servizio di test che dal servizio di produzione
SSLCACertificateFile "/cert/CERT/sdi/CA_Agenzia_delle_Entrate_all.pem"

SSLStrictSNIVHostCheck off

```

per generare il certificato server in formato pem (SDI-XXXXXXXXX-Server.pem):

```auto
openssl x509 -inform der -in SDI-XXXXXXXXX-Server.cer -out SDI-XXXXXXXXX-Server.pem

```

per generare il certificato con le root concatenate (caentrate.der + CAEntratetest.cer)

```auto
copy /b caentrate.der+CAEntratetest.cer CA_Agenzia_delle_Entrate_all.pem

```

PS aprilo e verifica che le sezioni BEGIN e END non siano sovrapposte sulla stessa linea (-----END CERTIFICATE----------BEGIN CERTIFICATE-----), in tal caso mettile su due linee:

```auto
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----

```

---

_[View the full topic](https://forum.italia.it/t/sdicoop-configurazione-php-soapclient-soapserver-apache-per-invio-e-ricezione-di-test/5528)._
