730 precompilato + di uno snippet

Discussione in 'Snippet PHP' iniziata da marino51, 9 Gennaio 2016.

  1. msccmra51

    msccmra51 Nuovo Utente

    Registrato:
    9 Settembre 2017
    Messaggi:
    49
    Mi Piace Ricevuti:
    0
    Punteggio:
    6
    Sesso:
    Maschio
    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
     
  2. msccmra51

    msccmra51 Nuovo Utente

    Registrato:
    9 Settembre 2017
    Messaggi:
    49
    Mi Piace Ricevuti:
    0
    Punteggio:
    6
    Sesso:
    Maschio
    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: 5 Settembre 2019
  3. msccmra51

    msccmra51 Nuovo Utente

    Registrato:
    9 Settembre 2017
    Messaggi:
    49
    Mi Piace Ricevuti:
    0
    Punteggio:
    6
    Sesso:
    Maschio
    Aggiornamento: il mio hosting supporta TLS 1.2
     
  4. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.548
    Mi Piace Ricevuti:
    126
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    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
     
  5. msccmra51

    msccmra51 Nuovo Utente

    Registrato:
    9 Settembre 2017
    Messaggi:
    49
    Mi Piace Ricevuti:
    0
    Punteggio:
    6
    Sesso:
    Maschio
    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
     
  6. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.548
    Mi Piace Ricevuti:
    126
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    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
     
  7. msccmra51

    msccmra51 Nuovo Utente

    Registrato:
    9 Settembre 2017
    Messaggi:
    49
    Mi Piace Ricevuti:
    0
    Punteggio:
    6
    Sesso:
    Maschio
    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.
     
  8. msccmra51

    msccmra51 Nuovo Utente

    Registrato:
    9 Settembre 2017
    Messaggi:
    49
    Mi Piace Ricevuti:
    0
    Punteggio:
    6
    Sesso:
    Maschio
    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: 29 Settembre 2019
  9. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.548
    Mi Piace Ricevuti:
    126
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    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,
            ),
        )),
    );
     
  10. msccmra51

    msccmra51 Nuovo Utente

    Registrato:
    9 Settembre 2017
    Messaggi:
    49
    Mi Piace Ricevuti:
    0
    Punteggio:
    6
    Sesso:
    Maschio
    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: 29 Settembre 2019
  11. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.548
    Mi Piace Ricevuti:
    126
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    dalle mie parti si chiama "botta di cu... fortuna"

    strano che parametri aggiuntivi, tra l'altro pertinenti, diano errore, puoi riportare l'errore ?

    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: 27 Settembre 2019
  12. msccmra51

    msccmra51 Nuovo Utente

    Registrato:
    9 Settembre 2017
    Messaggi:
    49
    Mi Piace Ricevuti:
    0
    Punteggio:
    6
    Sesso:
    Maschio
    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.
     
Sto caricando...

Condividi questa Pagina