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

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):

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)

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:

-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
1 Mi Piace