730 precompilato + di uno snippet

msccmra51

Utente Attivo
9 Set 2017
50
0
6
Mi riaffaccio qui per fare la stessa domanda del post di sopra. In ambiente di test mi da errore di connessione SOAP mentre in produzione è tutto ok. Tra i due cambiano solo i Link all'endpoint. Qualche idea? Ho pure scritto a SOGEI ma non risponde nessuno.
Grazie!!

codice errore: Faultcode: HTTP
Faultstring: Could not connect to host

Ecco il logo
05-Aug-2019 10:12:08 UTC] login : PROVAX00X00X000Y
[05-Aug-2019 10:12:08 UTC] password : Salve123
[05-Aug-2019 10:12:08 UTC] codiceRegione : 120
[05-Aug-2019 10:12:08 UTC] codiceAsl : 111
[05-Aug-2019 10:12:08 UTC] cfProprietario : PROVAX00X00X000Y
[05-Aug-2019 10:12:08 UTC] cfProprietarioCifrato : Ah1LnixnVEUqomYgH+MEOuhnowj/+iaS+wFLYP35BoeNbq8+68lkjTvo0h49p/iO1XjPVs8edoqNY1OXdcw1eNaaR4x4OsiM9zWvXQVYh2ocFBcpHAJlvoe7a0BPSF7Q94fUh/HkPzx+yi6t57DIatctICh4UIE3a+qW7e+1hzU=
[05-Aug-2019 10:12:08 UTC] piProprietario : 10954290599
[05-Aug-2019 10:12:08 UTC] pincodeInviante : 1234567890
[05-Aug-2019 10:12:08 UTC] pincodeInvianteCifrato : UVlBSIhTWnbQIJgJPReJHudcqwulW6D765f1QNcTc1HVvx4TD7qoDabol66sqSe7pysTxU3Ao6E4I7a3v70EQZgOLpFN2rJNnpRp7W5RZ2wHeKlifhooB8JBVY1CLypBKpyZILDBiDTeGl+KCToplJP3pjcWgOGQR0BroCisJXY=
[05-Aug-2019 10:12:08 UTC] File trattato: MSCMRA51P27Z614R.zip
[05-Aug-2019 10:12:08 UTC] carico in memoria il file MSCMRA51P27Z614R.zip
[05-Aug-2019 10:12:08 UTC] definisco il file wsdl ./SOAPFATTURE/InvioTelematicoSpeseSanitarie730p.wsdl
[05-Aug-2019 10:12:08 UTC] definisco the soap server location https://invioSS730pTest.sanita.finanze.it/InvioTelematicoSS730pMtomWeb/InvioTelematicoSS730pMtomPort
[05-Aug-2019 10:12:08 UTC] inizio trasferimento del file
[05-Aug-2019 10:12:08 UTC] trasferimento terminato con errori
 

msccmra51

Utente Attivo
9 Set 2017
50
0
6
In merito al post precedente la Sogei, dopo diverse sollecitazioni, mi ha risposto quanto segue:

Salve dal 18 Luglio tutti gli endpoint sono stati esposti con protocollo di sicurezza TLS 1.2 esclusivo
L’errore potrebbe essere dovuto a questo

In verità solo il con gli endpoint di test si verifica l'errore (loro dicono tutti gli endpoint). Ma in ogni caso come posso correggere l'errore? Il mio hosting è Linux. Grazie a chi vorrà aiutarmi.
Ciao
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
2.600
132
63
Lombardia
ferie lunghe quest'anno, risposta con un po' di ritardo

confermo che il problema sta nella versione obsoleta di OpenSSL presente all'interno di php
ho installato la versione php 5.6.31 (per evitare di creare panico sul mio pc) e senza modificare nessuno script,
la connessione ha preso a funzionare

VERSIONR PHP 5.4.9
upload_2019-9-24_20-6-49.png

upload_2019-9-24_20-7-21.png


VERSION PHP 5.6.31
upload_2019-9-24_20-8-14.png

upload_2019-9-24_20-9-3.png


Potete controllare con PHPinfo
Saluti
 

msccmra51

Utente Attivo
9 Set 2017
50
0
6
Grazie Marino, ti invio la configurazione e come puoi vedere mi pare aggiornata. Ma non ti suona strano che in produzione funziona e con l'endpoint test no?
Schermata 2019-09-24 alle 23.09.07.png
Schermata 2019-09-24 alle 23.08.26.png
 

marino51

Utente Attivo
28 Feb 2013
2.600
132
63
Lombardia
il risultato che ho pubblicato é stato ottenuto collegando il sito di test,
con la versione 5.4.9, si può dire che, non veniva accettata la connessione per via del protocollo di sicurezza,
con la 5.6.31 il problema é superato

l'errore che hai postato é differente dal mio e non riesco a riprodurlo
nel tuo caso sembra che il protocollo non sia responsabile,
inserisci questa funzione ed eseguila dopo la funzione "inviaFileMtom"
PHP:
function envelopes()
{
    global $client;

    echo "REQUEST HEADERS ============" . "<br />";
    $LastRequestHeaders = $client->__getLastRequestHeaders();
    echo "<xmp>"; var_dump($LastRequestHeaders); echo "</xmp><br /><br />";

    echo "REQUEST ====================" . "<br />";
    $LastRequest = $client->__getLastRequest();
    echo "<xmp>"; var_dump($LastRequest); echo "</xmp><br /><br />";

    echo "RESPONSE HEADERS ===========" . "<br />";
    $LastResponseHeaders = $client->__getLastResponseHeaders();
    echo "<xmp>"; var_dump($LastResponseHeaders); echo "</xmp><br /><br />";

    echo "RESPONSE ===================" . "<br />";
    $LastResponse = $client->__getLastResponse();
    echo "<xmp>"; var_dump($LastResponse); echo "</xmp><br /><br />";
}

try { $output = $client->inviaFileMtom($SoapRequest); }
catch ( SoapFault $e )
{ 
    require 'SoapFault.php';
}
envelopes();
così cerchiamo di verificare il problema
 

msccmra51

Utente Attivo
9 Set 2017
50
0
6
Grazie boss, provo e ti faccio sapere. Io ho avuto il problema dopo che sono passato dalla v. 5.5 alla 5.6 di php. Il mio errore sembra dovuto alla impossibilità di raggiungere il server sogei.
 

msccmra51

Utente Attivo
9 Set 2017
50
0
6
Ecco Marino, ho messo la tua funzione dopo

PHP:
$output = $client->inviaFileMtom(Array
    (
    "nomeFileAllegato"       => _Fatture730,
    "pincodeInvianteCifrato" => $pincodeInvianteCifrato,
    "documento"              => $zipfile,
    "datiProprietario"       => ( Array( "cfProprietario" => $cfProprietario ) )
    ));

Il risultato è questo

REQUEST HEADERS ============
NULL

REQUEST ====================
string(253) "&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://ejb.invioTelematicoSS730p.sanita.finanze.it/"&gt;&lt;SOAP-ENV:Body&gt;&lt;ns1:inviaFileMtom/&gt;&lt;/SOAP-ENV:Body&gt;&lt;/SOAP-ENV:Envelope&gt; "

RESPONSE HEADERS ===========
NULL

RESPONSE ===================
NULL
Ancora grazie
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
2.600
132
63
Lombardia
REQUEST HEADERS ============
NULL
l'errore é sulla tua macchina, che non genera "request headers",
il webservice di conseguenza non risponde
da cosa dipende ? sarebbe bello saperlo,
prova ad usare questi parametri, sono quelli che funzionano nelle mie prove
PHP:
$SoapClientParam = array
(
    "useMTOM"        => TRUE,
    "location"       => "x",  // sostituita nello script con l'endpoint specifico
    "login"          => $login,
    "password"       => $password,
    "authentication" => SOAP_AUTHENTICATION_BASIC,
    "keep_alive"     => TRUE,
    "cache_wsdl"     => WSDL_CACHE_NONE,
    "trace"          => TRUE,
    "exceptions"     => TRUE,
    "stream_context" => stream_context_create(array
    (
        "ssl" => array
        (
            "verify_peer"          => FALSE,
            "verify_peer_name"     => FALSE,
            "capture_session_meta" => TRUE,
        ),
    )),
);
 

msccmra51

Utente Attivo
9 Set 2017
50
0
6
Ok, provo e ti faccio sapere. Come ti spieghi che in ambiente di produzione funziona?

Aggiornamento : sono riuscito a superare l'ostacolo della mancata connessione grazie allo script che mi hai mandato, anche se ho dovuto semplificarlo così

PHP:
$SoapClientParam = array
    (
    "location"       => "x",
    "login"          => $login,
    "password"       => $password,
    "authentication" => SOAP_AUTHENTICATION_BASIC,
    "trace"          => true,
    "exceptions"     => false,
    "stream_context" => stream_context_create(array
    (
        "ssl" => array
        (
            "verify_peer"          => FALSE,
            "verify_peer_name"     => FALSE,
            "capture_session_meta" => TRUE,
        ),
    )),
    );
altrimenti non funzionava.

Ecco la risposta ma purtroppo non riesco ad interpretare l'errore in 'RESPONSE'.

REQUEST HEADERS ============
string(712) "POST /InvioTelematicoSS730pMtomWeb/InvioTelematicoSS730pMtomPort HTTP/1.1 Host: invioSS730pTest.sanita.finanze.it Connection: Keep-Alive User-Agent: PHP-SOAP/5.6.40 Content-Type: text/xml; charset=utf-8 SOAPAction: "" Content-Length: 253 Authorization: Basic UFJPVkFYMDBYMDBYMDAwWTpTYWx2ZTEyMw== Cookie: LtpaToken2=K3MJG/aHhM3Wivlzq4NXNBKXbBQiiZXPDlyBqy0ruZjIhBW/fAExPvj4+eDz/duutPPZgTSkWhDvlX8mKiGK2E/iPSMl+llzlUheBdGUlwIVKK8BC0cV6/47m3ITEi3nM/k4HD10oJH5bCyUKBqlvnYHv7OKlpW8q60yMiiZK/xO6kQ8wo8C7YTOUk0xJeEGU7Tdq5ZXjCLD+qAAVd/E9Ns+p2jGUGwdzNfCYPh4epQcgY/jPve7vjHPqK6w0vVtvaYsu2vf8x8NOCKdOjHuUHkELpaODe0EySaG9z9MXB9vsNScQoBg7foBRALvt4uM0tVq7Njtw4mkgkHiUS27Y9Ds8ndUvR+DDS9WIx+LoVXWH2gLD+4GmjDtqOYqNA1m; "

REQUEST ====================
string(253) "&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://ejb.invioTelematicoSS730p.sanita.finanze.it/"&gt;&lt;SOAP-ENV:Body&gt;&lt;ns1:inviaFileMtom/&gt;&lt;/SOAP-ENV:Body&gt;&lt;/SOAP-ENV:Envelope&gt; "

RESPONSE HEADERS ===========
string(112) "HTTP/1.1 500 Internal Server Error Content-Type: text/xml X-Backside-Transport: FAIL FAIL Connection: close "

RESPONSE ===================
string(541) "&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"&gt; &lt;env:Body&gt; &lt;env:Fault&gt; &lt;faultcode&gt;env:Client&lt;/faultcode&gt; &lt;faultstring&gt;cvc-particle 3.1: in element {http://ejb.invioTelematicoSS730p.sanita.finanze.it/}inviaFileMtom of type {http://ejb.invioTelematicoSS730p.sanita.finanze.it/}inviaFileMtom, found &amp;lt;/ns1:inviaFileMtom&gt; (in namespace http://ejb.invioTelematicoSS730p.sanita.finanze.it/), but next item should be nomeFileAllegato&lt;/faultstring&gt;&lt;/env:Fault&gt;&lt;/env:Body&gt;&lt;/env:Envelope&gt;
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
2.600
132
63
Lombardia
sono riuscito a superare l'ostacolo della mancata connessione grazie allo script che mi hai mandato
dalle mie parti si chiama "botta di cu... fortuna"

ho dovuto semplificarlo così
strano che parametri aggiuntivi, tra l'altro pertinenti, diano errore, puoi riportare l'errore ?

non riesco ad interpretare l'errore in RESPONSE
ho confrontato i due "request headers" (tuo e mio), sono praticamente identici, il tuo contiene "Cookie: …." non presente nel mio ( per ora trascuriamo )

riguardo la "request" la stai inviando vuota !
Codice:
<SOAP-ENV:Body><ns1:inviaFileMtom/></SOAP-ENV:Body></SOAP-ENV:Envelope>
il body non contiene la richiesta
PHP:
    $SoapRequest = array
    (
        "pincodeInvianteCifrato" => $pincodeInvianteCifrato,
        "datiProprietario"       => array
        (
            "cfProprietario"     => $cfProprietario
        ),
        "nomeFileAllegato"       => $Fatture730,
        "documento"              => $zipfile,
    )
quindi lo script di invio dei dati non fa il suo "dovere"

l'errore é questo
"but next item should be nomeFileAllegato" che giustappunto non é stato inviato e neppure gli altri elementi
 
Ultima modifica:

msccmra51

Utente Attivo
9 Set 2017
50
0
6
Marino, hai salvato nuovamente la patria, almeno quella mia! A parte alcuni errori dovuti al diverso nome tra alcune nostre variabili il tutto si è risolto quando ho inserito "stream_context => ecc" nella creazione del client e che nelle prime versione dei tuoi script non c'era. Mi spieghi, se hai tempo, a cosa serve? Resta il mistero che solo sul sito test non riuscivo a connettermi mentre in produzione nessun problema. Grazie Marino, sei veramente super bravo. Ti ho inviato un mess privato.
 

msccmra51

Utente Attivo
9 Set 2017
50
0
6
Voglio ringraziare ancora Marino per l'aiuto ricevuto. Non ho più avuto problemi da quando mi ha suggerito come risolverli.