Errore 500 VerificaVoucher Carta del Docente

Leggi i messaggi precedenti c’è un pastebin per il wsdl, ma la cosa importante IL METEODO 2 (tipo operazione 2) non esiste più o almeno non funziona. Bisogna ricorrere al Confirm. In ogni caso ripeto nei messaggi precedenti ci sono tutte le indicazioni.

Buongiorno,
bisogna cambiare anche il tipo di chiamata del soapClient. Io ho usato il WSDL che ha inviato @Francesco_Angelin sostituendo il link localhost con: “https://ws.cartadeldocente.istruzione.it/VerificaVoucherDocWEB/VerificaVoucher”.

Nella chiamata va prima fatto il check e poi il confirm. Nel confirm bisogna usare come tipoOperazione “1”. Di seguito i metodi PHP che uso io :

public function check($value = 1) {
    $check = $this->soap_client()->Check(array(
        'checkReq' => array(
            'tipoOperazione' => $value,
            'codiceVoucher'  => $this->codiceVoucher,
            'importo'=> $this->import
        )
    ));
    
    return $check;
}


   public function confirm() {
    $confirm = $this->soap_client()->Confirm(array(
        'checkReq' => array(
            'tipoOperazione' => '1',
            'codiceVoucher'  => $this->codiceVoucher,
            'importo'=> $this->import
        )
    ));

Come detto uso il metodo 1 non il 2, ho visto il file WSDL di @albetodega e provato ho provato a usalo, ma senza esito vi è qualche altra modifica sicuramente.

try {
    $client = new SoapClient($wsdl, $options);
    $data = array('checkReq' => array(
        'codiceVoucher' => $voucher_code,
        "partitaIvaEsercente" => $piva_merchant,
        'tipoOperazione' => '1'
        ));

    if ($callMethod == 1) {
        echo "Using __soapCall for detailed response.<br>";
        $result = $client->__soapCall('Check', array($data));
        $result = $client->Check($data);
    } else {
        echo "Using standard method call.<br>";
        $result = $client->Check($data);
    }

    var_dump($result);

    // Debug SOAP se checksoap=1
    if ($checkSoap == 1) {
        echo "<br><hr><h3>SOAP Debug</h3>";
        echo "Last Request:<br>" . htmlspecialchars($client->__getLastRequest()) . "<br>";
        echo "Last Response:<br>" . htmlspecialchars($client->__getLastResponse()) . "<br>";
    }
} catch(Exception $e) {
    if ($fullError == 1) {
        echo "Detailed Exception Information:<br>";
        var_dump($e);
    } else {
        echo "SOAP Fault: (faultcode: {$e->getCode()}, faultstring: {$e->getMessage()})";
    }

    // In caso di errore, visualizza comunque il debug SOAP se attivo
    if ($checkSoap == 1) {
        echo "<br><hr><h3>SOAP Debug</h3>";
        echo "Last Request:<br>" . htmlspecialchars($client->__getLastRequest()) . "<br>";
        echo "Last Response:<br>" . htmlspecialchars($client->__getLastResponse()) . "<br>";
    }
}

Provi a mettere l’importo sul check

Purtroppo nulla anche con l’importo, faccio ulteriori prove, l’errore rimane sempre:
object(SoapFault)#118 (14) { [“message”:protected]=> string(14) “Internal Error”

Tempo addietro alcuni esercenti hanno dovuto ricreare il CA, spero che in aggiunta non mi trovo in più con un certificato non più valido, non mi viene in mente altro. La chiamata è praticamente identica, il WSLD pure.

Puoi se ti capita provare la validazione del buono ‘11aa22bb’ quello per l’attivazione dell’esercente?

Ho provato pure in wstest, ma in quel caso mi da errore:
object(SoapFault)#162 (9) { [“message”:protected]=> string(25) “Could not connect to host”

Provo a rigenerare il CA partendo dal .p12 presente nell’ultimo zip inviato forse hanno cambiato pure quello.

Ho provato a validare il buono “11aa22bb” e me lo valida senza problemi. Ha provato a vedere le funzioni PHP che ho inviato in un messaggio di sopra? Magari riadattando le funzioni di chiamata Check e Confirm entrambi con tipoOperazione “1” potrebbe funzionare.

Le ricontrollo, ma sono tutte di tipo 1 da sempre, ho pure ripristinato una versione precedente ai test dei giorni scorsi visto che ieri per tentare di capire quale è l’errore avevo integrato un debug SOAP per avere il dettaglio della risposta. Un errore generico purtroppo che non aiuta. :frowning:

Sorvolando sulla procedura di attivazione che è solo un Check. Quella usata fino ad ora, la validazione del modulo avviene con due funzioni getVoucher e confirmVoucher, non le modifico praticamente da quando è nato questo bonus.

prova a passare nelle opzioni della libreria soapclient

'cache_wsdl' => WSDL_CACHE_NONE,

e utilizza il seguente WSDL

<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://bonus.miur.it/VerificaVoucher/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns2="http://schemas.xmlsoap.org/soap/http" xmlns:ns1="http://verificavoucher.bonus.miur.it/VerificaVoucher/" name="VerificaVoucher" targetNamespace="http://bonus.miur.it/VerificaVoucher/">
  <wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://bonus.miur.it/VerificaVoucher/" targetNamespace="http://bonus.miur.it/VerificaVoucher/" version="1.0">

  <xs:element name="CheckRequestObj">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="checkReq" type="tns:Check"></xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="CheckResponseObj">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="checkResp" type="tns:CheckResponse"></xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="ConfirmRequestObj">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="checkReq" type="tns:Confirm"></xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="ConfirmResponseObj">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="checkResp" type="tns:ConfirmResponse"></xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="Confirm">
    <xs:sequence>
      <xs:element name="tipoOperazione" type="xs:string"></xs:element>
      <xs:element name="codiceVoucher" type="xs:string"></xs:element>
      <xs:element name="importo" type="xs:double"></xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="ConfirmResponse">
    <xs:sequence>
      <xs:element name="esito" type="xs:string"></xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Check">
    <xs:sequence>
      <xs:element name="tipoOperazione" type="xs:string"></xs:element>
      <xs:element name="codiceVoucher" type="xs:string"></xs:element>
      <xs:element minOccurs="0" name="partitaIvaEsercente" type="xs:string"></xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="CheckResponse">
    <xs:sequence>
      <xs:element name="nominativoBeneficiario" type="xs:string"></xs:element>
      <xs:element name="partitaIvaEsercente" type="xs:string"></xs:element>
      <xs:element name="ambito" type="xs:string"></xs:element>
      <xs:element name="bene" type="xs:string"></xs:element>
      <xs:element name="importo" type="xs:double"></xs:element>
    </xs:sequence>
  </xs:complexType>

</xs:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://verificavoucher.bonus.miur.it/VerificaVoucher/" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://verificavoucher.bonus.miur.it/VerificaVoucher/">
  <xsd:element name="FaultVoucher" type="tns:FaultVoucher"></xsd:element>
  <xsd:complexType name="FaultVoucher">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="exceptionCode" type="xsd:string"></xsd:element>
      <xsd:element minOccurs="0" name="exceptionMessage" type="xsd:string"></xsd:element>
      <xsd:element minOccurs="0" name="message" type="xsd:string"></xsd:element>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>
  </wsdl:types>
  <wsdl:message name="Confirm">
    <wsdl:part element="tns:ConfirmRequestObj" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="Check">
    <wsdl:part element="tns:CheckRequestObj" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="CheckResponse">
    <wsdl:part element="tns:CheckResponseObj" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="FaultVoucher">
    <wsdl:part element="ns1:FaultVoucher" name="FaultVoucher">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="ConfirmResponse">
    <wsdl:part element="tns:ConfirmResponseObj" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="VerificaVoucher">
    <wsdl:operation name="Confirm">
      <wsdl:input message="tns:Confirm" name="Confirm">
    </wsdl:input>
      <wsdl:output message="tns:ConfirmResponse" name="ConfirmResponse">
    </wsdl:output>
      <wsdl:fault message="tns:FaultVoucher" name="FaultVoucher">
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="Check">
      <wsdl:input message="tns:Check" name="Check">
    </wsdl:input>
      <wsdl:output message="tns:CheckResponse" name="CheckResponse">
    </wsdl:output>
      <wsdl:fault message="tns:FaultVoucher" name="FaultVoucher">
    </wsdl:fault>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="VerificaVoucherSoapBinding" type="tns:VerificaVoucher">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"></soap:binding>
    <wsdl:operation name="Confirm">
      <soap:operation soapAction="http://bonus.miur.it/VerificaVoucherSOAP/Confirm" style="document"></soap:operation>
      <wsdl:input name="Confirm">
        <soap:body use="literal"></soap:body>
      </wsdl:input>
      <wsdl:output name="ConfirmResponse">
        <soap:body use="literal"></soap:body>
      </wsdl:output>
      <wsdl:fault name="FaultVoucher">
        <soap:fault name="FaultVoucher" use="literal"></soap:fault>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="Check">
      <soap:operation soapAction="http://bonus.miur.it/VerificaVoucherSOAP/Check" style="document"></soap:operation>
      <wsdl:input name="Check">
        <soap:body use="literal"></soap:body>
      </wsdl:input>
      <wsdl:output name="CheckResponse">
        <soap:body use="literal"></soap:body>
      </wsdl:output>
      <wsdl:fault name="FaultVoucher">
        <soap:fault name="FaultVoucher" use="literal"></soap:fault>
      </wsdl:fault>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="VerificaVoucher">
    <wsdl:port binding="tns:VerificaVoucherSoapBinding" name="VerificaVoucherSOAP">
      <soap:address location="https://ws.cartadeldocente.istruzione.it/VerificaVoucherDocWEB/VerificaVoucher"></soap:address>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>
1 Mi Piace

Perfetto, con ‘cache_wsdl’ => WSDL_CACHE_NONE, finalmente la funzione di attivazione mi risponde con:

object(stdClass)#148 (1) { [“checkResp”]=> object(stdClass)#177 (5) { [“nominativoBeneficiario”]=> string(22) “Attivazione effettuata” [“partitaIvaEsercente”]=> string(16)

Come doveva essere! Grazie a tutti, correggo anche le funzioni di validazione e dovrebbe finalmente funzionare.

verifica il body della richiesta, il mio problema principale era legato al fatto che la risposta veniva ricondotta dal mio client al formato del wsdl nuovo che, come detto, veniva mal digerito dal mio client soap.
oltre a verificare il body della richiesta controlla anche che le tue richieste partano in tls1.2. considera che se usate anche carta cultura il server accetta gli stessi cypher, quindi se il tuo codice funziona su carta cultura allora il problema non è tls1.
la soap deve partire verso
https://ws.cartadeldocente.istruzione.it/VerificaVoucherDocWEB/VerificaVoucher
ed utilizzare la action
http://bonus.miur.it/VerificaVoucherSOAP/ con Confirm o Check
se vuoi mandaci il wsdl che stai usando che controlliamo insieme

1 Mi Piace

Se può servire a qualcuno, anche io ho risolto:
https://pastebin.com/LJWpXjKH

Anche noi oggi abbiamo risolto, grazie a tutti per il confronto .

Ciao a tutti,

SOGEI mi ha risposto e mi ha mandato il nuovo file VerificaVoucher.wsdl
è bastato sostituirlo al precedente e adesso funziona bene come prima. Non c’è bisogno di fare alcuna modifica agli altri file del plugin (io uso il plugin gratuito di wordpress di ilghera).

ciao
a.i.

<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://bonus.miur.it/VerificaVoucher/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns2="http://schemas.xmlsoap.org/soap/http" xmlns:ns1="http://verificavoucher.bonus.miur.it/VerificaVoucher/" name="VerificaVoucher" targetNamespace="http://bonus.miur.it/VerificaVoucher/">
  <wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://bonus.miur.it/VerificaVoucher/" targetNamespace="http://bonus.miur.it/VerificaVoucher/" version="1.0">

  <xs:element name="CheckRequestObj">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="checkReq" type="tns:Check"></xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="CheckResponseObj">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="checkResp" type="tns:CheckResponse"></xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="ConfirmRequestObj">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="checkReq" type="tns:Confirm"></xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="ConfirmResponseObj">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="checkResp" type="tns:ConfirmResponse"></xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="Confirm">
    <xs:sequence>
      <xs:element name="tipoOperazione" type="xs:string"></xs:element>
      <xs:element name="codiceVoucher" type="xs:string"></xs:element>
      <xs:element name="importo" type="xs:double"></xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="ConfirmResponse">
    <xs:sequence>
      <xs:element name="esito" type="xs:string"></xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Check">
    <xs:sequence>
      <xs:element name="tipoOperazione" type="xs:string"></xs:element>
      <xs:element name="codiceVoucher" type="xs:string"></xs:element>
      <xs:element minOccurs="0" name="partitaIvaEsercente" type="xs:string"></xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="CheckResponse">
    <xs:sequence>
      <xs:element name="nominativoBeneficiario" type="xs:string"></xs:element>
      <xs:element name="partitaIvaEsercente" type="xs:string"></xs:element>
      <xs:element name="ambito" type="xs:string"></xs:element>
      <xs:element name="bene" type="xs:string"></xs:element>
      <xs:element name="importo" type="xs:double"></xs:element>
    </xs:sequence>
  </xs:complexType>

</xs:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://verificavoucher.bonus.miur.it/VerificaVoucher/" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://verificavoucher.bonus.miur.it/VerificaVoucher/">
  <xsd:element name="FaultVoucher" type="tns:FaultVoucher"></xsd:element>
  <xsd:complexType name="FaultVoucher">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="exceptionCode" type="xsd:string"></xsd:element>
      <xsd:element minOccurs="0" name="exceptionMessage" type="xsd:string"></xsd:element>
      <xsd:element minOccurs="0" name="message" type="xsd:string"></xsd:element>   
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>
  </wsdl:types>
  <wsdl:message name="Confirm">
    <wsdl:part element="tns:ConfirmRequestObj" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="Check">
    <wsdl:part element="tns:CheckRequestObj" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="CheckResponse">
    <wsdl:part element="tns:CheckResponseObj" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="FaultVoucher">
    <wsdl:part element="ns1:FaultVoucher" name="FaultVoucher">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="ConfirmResponse">
    <wsdl:part element="tns:ConfirmResponseObj" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="VerificaVoucher">
    <wsdl:operation name="Confirm">
      <wsdl:input message="tns:Confirm" name="Confirm">
    </wsdl:input>
      <wsdl:output message="tns:ConfirmResponse" name="ConfirmResponse">
    </wsdl:output>
      <wsdl:fault message="tns:FaultVoucher" name="FaultVoucher">
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="Check">
      <wsdl:input message="tns:Check" name="Check">
    </wsdl:input>
      <wsdl:output message="tns:CheckResponse" name="CheckResponse">
    </wsdl:output>
      <wsdl:fault message="tns:FaultVoucher" name="FaultVoucher">
    </wsdl:fault>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="VerificaVoucherSoapBinding" type="tns:VerificaVoucher">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"></soap:binding>
    <wsdl:operation name="Confirm">
      <soap:operation soapAction="http://bonus.miur.it/VerificaVoucherSOAP/Confirm" style="document"></soap:operation>
      <wsdl:input name="Confirm">
        <soap:body use="literal"></soap:body>
      </wsdl:input>
      <wsdl:output name="ConfirmResponse">
        <soap:body use="literal"></soap:body>
      </wsdl:output>
      <wsdl:fault name="FaultVoucher">
        <soap:fault name="FaultVoucher" use="literal"></soap:fault>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="Check">
      <soap:operation soapAction="http://bonus.miur.it/VerificaVoucherSOAP/Check" style="document"></soap:operation>
      <wsdl:input name="Check">
        <soap:body use="literal"></soap:body>
      </wsdl:input>
      <wsdl:output name="CheckResponse">
        <soap:body use="literal"></soap:body>
      </wsdl:output>
      <wsdl:fault name="FaultVoucher">
        <soap:fault name="FaultVoucher" use="literal"></soap:fault>
      </wsdl:fault>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="VerificaVoucher">
    <wsdl:port binding="tns:VerificaVoucherSoapBinding" name="VerificaVoucherSOAP">
      <soap:address location="http://localhost:9099/VerificaVoucherWEB/VerificaVoucher"></soap:address>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

Qualcuno è riuscito a fare dei test di check & confirmation con il link di test?:

https://wstest.cartadeldocente.istruzione.it/VerificaVoucherDocWEB/VerificaVoucher

A me da errore: [SSL: SSLV3_ALERT_BAD_CERTIFICATE]

Con link normale funziona, tuttavia vorrei fare dei test prima di andare in produzione :sweat_smile:

Sembra che abbiano cambiato il CA, nello zip c’è un .p12 datato 01/09/2022, ma non l’ho ancora provato. Essendo che i test vanno fatti con buoni da chiedere ogni volta a docenti@sogei.it e che da molto tempo che segnalo che wstest non funziona senza ricevere né i buoni, né informazioni, alla fine i test li faccio sull’ambiente di produzione usando il buono 11aa22bb.

Prova a scaricare da qui il p12 di settembre 2022:
https://www.cartadeldocente.istruzione.it/docentiEsercente/assets/docs/lineeguida-esercenti-cartadeldocente.zip

Anche se molto spesso non aggiornano questa documentazione o lo fanno male. C’è ancora il refuso sugli endpoint a pagina 12 della guida dopo 4 anni, non ancora corretto.

Non capisco poi perché non esista un’area developer dedicata e un servizio assistenza con gestione SLA degno di essere considerato tale. Come non comprendo perché cambino il WSDL così senza darne comunicazione a nessuno e solo per cambiare i namespace e null’altro, che senso ha? Boh!

Buongiorno,

Sono bloccato ancora alla fase di attivazione profilo esercente tramite voucher ‘11aa22bb’ in quanto mi restituisce ‘Could not connect to host’.

Sto usando il WSDL che ha inviato @Francesco_Angelin e ho sostituito il link localhost con:
https://ws.cartadeldocente.istruzione.it/VerificaVoucherDocWEB/VerificaVoucher

Mentre, questo è il mio codice PHP:
https://pastebin.com/kNR3mbZf

A qualcun altro risulta avere lo stesso problema?

Grazie mille

Io per qualche motivo mi riesco a connettere a entrambi con lo stesso certificato.

Il comportamento strano, che ho già segnalato è che in produzione sono attivo. Mentre sull’ambiente di Test ricevo
Impossibile verificare o consumare il buono. L’esercente risulta non attivo "

Ovviamente però se provo ad attivarmi su test con codice 11aa22bb mi ritorna che l’esercente è già stato atttivato.

Se a qualcuno servisse un Gateway NodeJS eccolo qui.
https://pastebin.com/ZeMc2UKU

I buoni per l’area di test devono essere forniti specificatamente da docenti@sogei.it e puoi effettuare le prove solo con il CA di test non con quello dell’esercente.

L’unico modo di effettuare prove con il CA dell’esercente è in ambiente di produzione.

Non so se hanno risolto, ma con wstest è necessario passare i parametri

‘verify_peer’=>false,
‘verify_peer_name’=>false,
‘allow_self_signed’ => true

Salve,

Sono alla fase di attivazione: qualcuno sa guidarmi per come installare il certificato (.cer) e la chiave privata (che non so quale sia) su SoapUI?

Grazie e cordiali saluti

CIao a tutti, sono alle prese con l’integrazione della carda del docente, e prima dell’aggiornamento funzionava correttamente. Dopo l’aggiornamento invece ricevo sempre un internal error

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body>
<env:Fault>
<faultcode>env:Client</faultcode>
<faultstring>Internal Error</faultstring>
</env:Fault>
</env:Body>
</env:Envelope>

L’endpoint per i test che sto usando è https://wstest.cartadeldocente.istruzione.it/VerificaVoucherDocWEB/VerificaVoucher
il wsdl che sto usando è uguale al file condiviso da @Francesco_Angelin e sto usando il certificato AAAAAA00H01H501P.pem con relativa password.
i metodi che uso sono check e confirm

Potete aiutarmi a capire come mai non funziona più?

Grazie