730 precompilato + di uno snippet

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

  1. manuel_1975

    manuel_1975 Nuovo Utente

    Registrato:
    21 Dicembre 2016
    Messaggi:
    20
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Occupazione:
    Ingegnere libero professionista
    Località:
    Manziana
    Home Page:
    Salve a tutti.
    Premesso che tempo fa avevo fatto prove in ambiente TEST e funzionava tutto.
    Ora sto provando con un invio in ambiente operativo e la chiamata SOAP mi da errore: "SOAP Fault: (faultcode: env:Client, faultstring: Credenziali invalide)".
    Si tratta di un poliambluatorio, quindi credo struttura autorizzata.
    Riguardo user e password devo usare quelle indicate nel file credenziali con:

    Codice:
    $login            = _networkUser;
        $password            = _networkPsw;
    Giusto?


    Il file XML è perfetto l'ho anche controllato con Notepadd++.
    Avete qualche idea?

    Grazie
     
  2. manuel_1975

    manuel_1975 Nuovo Utente

    Registrato:
    21 Dicembre 2016
    Messaggi:
    20
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Occupazione:
    Ingegnere libero professionista
    Località:
    Manziana
    Home Page:
    Qualcuno che mi aiuta :(((( ??
     
  3. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    1.917
    Mi Piace Ricevuti:
    71
    Punteggio:
    48
    Occupazione:
    free lance
    Località:
    Lombardia
    scusate, non mi piace lasciare questa discussione "non terminata", quindi posto l'ultimo scambio privato,
    sono contento che funzioni,
    in realtà eseguendo solo credenziali, mi sono stati segnalati errori nello script che ho corretto, null'altro di particolare
     
  4. msccmra51

    msccmra51 Nuovo Utente

    Registrato:
    9 Settembre 2017
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Salve a tutti, mi sono iscritto da poco e questo è il mio primo intervento. Sono capitato qui cercando notizie sul modo di inviare le fatture al sistemats ed i realtà ho trovato la pappa già bella e pronta! Un grazie di cuore a tutti coloro che hanno reso possibile ciò. Mi permetto di inviare una modifica al file FattureInvioEsito.php che ora può ricevere anche i reports filtrati in un intervallo di date. Se invece delle date di inizio e fine ricerca si sceglie il protocollo si avrà la risposta solo per quello. Con l'occasione voglio segnalare un problema con FattureInvioRicevutaPdf.php. Funziona tutto alla perfezione ma non riesco ad aprire il pdf, ricevo sempre l'avviso che "non è un file pdf o è corrotto", sia con Acrobat reader che con altri lettori pdf. Se invece lo apro direttamente nel browser nessun problema. E' capitato a qualcuno? Grazie a tutti.
    Codice:
    <?php
    require_once 'Credenziali.php';
    //$protocollo = "qui il protocollo";
    if(isset($protocollo))
    {
    $dataInizio = "";
    $dataFine   = "";
    }
    else
    {
    $dataInizio = "01-01-2017";
    $dataFine   = "20-09-2017";
    }
    echo "<p><h4>RICHIESTA DELL' ESITO DOPO IL TRASFERIMENTO DELLE FATTURE</h4></p>";
    
    $ws = _EsitoInvio_WSDL;
    $SoapClientParam["location"] = $EsitoInvio;
    
    error_log("definisco il file wsdl ".$ws, 0);
    echo $ws."<p> </p>";
    
    error_log("definisco the soap server location ".$SoapClientParam["location"], 0);
    echo $SoapClientParam["location"]."<p> </p>";
    
    
    $client = new SoapClient($ws, $SoapClientParam);
    
    echo "<p><h4>List of available SOAP functions</h4></p>";
    $output = $client->__getFunctions();
    while (list ($key, $val) = each ($output) ) echo $val."<br />"; echo "<p> </p>";
    
    echo "<p><h4>List of types described in the WSDL for the Web service</h4></p>";
    $output = $client->__getTypes();
    while (list ($key, $val) = each ($output) ) echo $val."<br />"; echo "<p> </p>";
    
    
    echo "<p><h4>INVIO LA RICHIESTA</h4></p>";
    echo $protocollo."<p> </p>";
    
    error_log("invio la richiesta", 0);
    error_log("pinCode    = ".$pincodeInvianteCifrato, 0);
    error_log("Protocollo = ".$protocollo, 0);
    
    $output = $client->EsitoInvii(Array
        (
        "DatiInputRichiesta"    => (Array
            (
            "pinCode"     => $pincodeInvianteCifrato,
            "dataInizio"  => $dataInizio,
            "dataFine"    => $dataFine,
            "protocollo"  => $protocollo,
            "opzionale1"  => '0',
            "opzionale2"  => '0',
            "opzionale3"  => '0'
            ))
        ));
    if (is_soap_fault($output))
        {
        $err = "SOAP Fault: (faultcode: {$output->faultcode}, faultstring: {$output->faultstring})";
        error_log("richiesta terminata con errori", 0);
        echo "<p><h4>RICHIESTA TERMINATA CON ERRORI</h4></p>"."<p>$err</p>";
        var_dump($err); echo "<p> </p>";
        trigger_error($err, E_USER_ERROR);
        }
    else
        {
        error_log("LA RICHIESTA HA AVUTO RISPOSTA", 0);
        echo "<p><h4>LA RICHIESTA HA AVUTO RISPOSTA</h4></p>";
    
        $esito = $output->DatiOutputRichiesta->esitoChiamata;
       echo "<p><h4>ESITO PER QUESTA RICHIESTA: ".$esito."</h4></p>";
      
        if ( $esito == "0" )          
            {
               if(empty($protocollo))//eseguo questo if se non c'è un protocollo
               {
                   echo "<p><h4>E' PRESENTE LA RISPOSTA PER QUESTA RICHIESTA dal ".$dataInizio."al ".$dataFine."</h4></p>";
                   $invii_object = $output->DatiOutputRichiesta->esitiPositivi->dettagliEsito;
                   foreach ($invii_object as $invii_array)
                   {
                   $protocollo  = $invii_array->protocollo;
                   $dataInvio   = $invii_array->dataInvio;
                   $stato       = $invii_array->stato;
                   $descrizione = $invii_array->descrizione;
                   $nInviati    = $nInviati+$invii_array->nInviati;
                   $nAccolti    = $nAccolti+$invii_array->nAccolti;
                   $nWarnings   = $nWarnings+$invii_array->nWarnings;
                   $nErrori     = $nErrori+$invii_array->nErrori;
                   $invvii[]    = array($protocollo,$dataInvio,$descrizione);
                   }
                   echo "<p><h4>ARRAY CONTENENTE GLI INVII</h4></p>";
                   print_r($invvii);
                   echo "<p><h4>REPORT INVII DEL PERIODO SCELTO</h4></p>";
                   echo '--inviati '.$nInviati ;
                   echo '--accolti '.$nAccolti  ;
                   echo '--warnings '.$nWarnings;
                   echo '--nerrori '.$nErrori ;
               }
               else // se c'è il protocollo
               {
                   ReportOutput("protocollo");
                   ReportOutput("dataInvio");
                   ReportOutput("stato");
                   ReportOutput("descrizione");
                   ReportOutput("nInviati"); 
                   ReportOutput("nAccolti");
                   ReportOutput("nWarnings");
                   ReportOutput("nErrori");
               }      
            }
        else
            {
            error_log("ERRORE: NON E' PRESENTE L' ESITO PER QUESTA INTERROGAZIONE ", 0);
            echo "<p><h4>ERRORE: NON E' PRESENTE L' ESITO PER QUESTA INTERROGAZIONE </h4></p>";
            }
        }
    
    error_log("done ".$_SERVER['PHP_SELF'], 0);
    echo "<p><h4>FINE DEL LAVORO</h4></p>";
    
    
    
    function ReportOutput($var)
        {
        global $output;
        error_log($var." = ".$output->DatiOutputRichiesta->esitiPositivi->dettagliEsito->{$var}, 0);
        echo $var." = ".$output->DatiOutputRichiesta->esitiPositivi->dettagliEsito->{$var}."<br />";
        }
    ?>
    
    
     
    Ultima modifica: 23 Settembre 2017
  5. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    1.917
    Mi Piace Ricevuti:
    71
    Punteggio:
    48
    Occupazione:
    free lance
    Località:
    Lombardia
    se non ricordo male, in qualche post successivo al primo ci sono zip con versioni aggiornate degli script,
    che prevedono l'uso dei filtri, da indicare nel file credenziali ...

    per quanto riguarda il pdf, forse viene gestito male, perché,con un invio di prova fatto or ora, ricevo il pdf correttamente e riesco ad aprirlo con adobe acrobat 7.1 senza nessuna segnalazione particolare

    upload_2017-9-23_23-7-39.png
     
  6. msccmra51

    msccmra51 Nuovo Utente

    Registrato:
    9 Settembre 2017
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Grazie Marino, in effetti i post sono talmente tanti che mi ci sono perso e magari qualcuno lo aveva già fatto. Ne abbiamo uno in più.
    Cosa intendi quando dici che il pdf viene gestito male? Io uso il tuo script, non ho cambiato nulla a parte il nome del file. Ho tolto i rem, come da te indicato, in modo che si apra automaticamente.
     
    Ultima modifica: 24 Settembre 2017
  7. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    1.917
    Mi Piace Ricevuti:
    71
    Punteggio:
    48
    Occupazione:
    free lance
    Località:
    Lombardia
    diverse prove e riesco ad aprirlo bene in ogni caso,
    ho comunque modificato lo script FattureInvioRicevutaPdf.php in questo modo,
    PHP:
            file_put_contents $nomefile$dati );
    //      ****************
    //      rimuovere i commenti qui sotto per  aprire direttamente il file  
    //      ****************
            
    echo "<script>window.open( 'PdfReportDisplay.php?pdf=" $nomefile "' )</script>";

            
    error_log("RICHIESTA COMPLETATA CON SUCCESSO"0);
    e nella stessa cartella ho aggiunto lo script PdfReportDisplay.php
    PHP:
    <?php
    $nomefile 
    $_GET['pdf'];

    if(
    file_exists($nomefile))
    {
        
    header('Content-type: application/pdf');
        
    header('Content-Length: ' filesize($nomefile));
        
    header('Content-Disposition: inline; filename="' $nomefile '"');
        
    header('Content-Transfer-Encoding: binary');
        
    header('Accept-Ranges: bytes');
        
    readfile($nomefile);
    }
    die;
    ?>
    ed apre il pdf regolarmente in una nuova finestra
    upload_2017-9-24_12-17-44.png
    può essere che da qualche parte (configurazione browser e/o pc) sia indicato un lettore pdf non valido ?
     
  8. msccmra51

    msccmra51 Nuovo Utente

    Registrato:
    9 Settembre 2017
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Controllo e ti dico. Per ora grazie.
     
  9. msccmra51

    msccmra51 Nuovo Utente

    Registrato:
    9 Settembre 2017
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Togliendo l'Header con il filesize funziona alla grande. Se lo lascio viene visualizzata una pagina vuota grigia. Come sempre sei la panacea per tutti i mali. Grazie!!
     
  10. msccmra51

    msccmra51 Nuovo Utente

    Registrato:
    9 Settembre 2017
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Con grande rammarico mi correggo, ne apre solo uno tra quelli che arrivano nel periodo scelto con datainizio e datafine.
     
  11. msccmra51

    msccmra51 Nuovo Utente

    Registrato:
    9 Settembre 2017
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ecco come si prentano i pdf. L'unico che si visulizza ha comunque un warning che potrebbe essere utile per capire il problema. Ciao
     

    Files Allegati:

    • pdf1.PNG
      pdf1.PNG
      Dimensione del file:
      115,5 KB
      Visite:
      22
    • pdf2.PNG
      pdf2.PNG
      Dimensione del file:
      106,5 KB
      Visite:
      24
  12. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    1.917
    Mi Piace Ricevuti:
    71
    Punteggio:
    48
    Occupazione:
    free lance
    Località:
    Lombardia
    puoi modificare lo script in modo da gestire più pdf

    non so come lavori tu, ma preferisco iniziare un invio e concluderlo con tutta la sua documentazione,
    in modo da creare un insieme da consegnare al professionista
    ed al contempo essere immediatamente sicuro della "qualità" dell'invio
    per questa ragione non ho mai dato peso all'uso dei filtri che non siano il semplice protocollo
     
    Ultima modifica: 25 Settembre 2017
  13. msccmra51

    msccmra51 Nuovo Utente

    Registrato:
    9 Settembre 2017
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ciao Marino, ho capito il problema ma necessita una premessa. Se si interroga il sistemaTs alla voce 'Ricevute spese sanitarie' si ottiene una tabella di una o più righe che contiene anche l'icona PDF (conoscerai perfettamente la procedura). Cliccandola sia apre sempre il file allegato per tutti i risultati ricevuti (ti semplifico la cosa allegando una schermata). Il nostro script 'FattureInvioRicevutaPdf.php' non salva sempre la ricevuta protocollo.pdf, e questo perché "$esito = $output->DatiOutputRichiesta->esitoChiamata;" ritorna il valore 1 che appunto dice che il file è vuoto. Riepilogando:
    1) il sistemats restituisce SEMPRE un file pdf
    2) il nostro script giustamente, ricevendo 1 come esito della chiamata, non salva nulla. Io ho forzato comunque il salvataggio ed il file pdf è vuoto.
    Ho fatto la prova, con lo stesso protocollo , interrogando prima direttamente il sistemats e subito dopo col nostro script : il sistemats restituisce il file pdf e la nostra interrogazione no. Uso il tuo script senza aver toccato nulla ed interrogando il server di esercizio per le mie ricevute.
    Idee?

    Grazie!
     

    Files Allegati:

  14. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    1.917
    Mi Piace Ricevuti:
    71
    Punteggio:
    48
    Occupazione:
    free lance
    Località:
    Lombardia
    upload_2017-9-25_16-26-45.png

    non capisco perché devo scaricare un pdf (vuoto) di un protocollo che non esiste ....
     
  15. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    1.917
    Mi Piace Ricevuti:
    71
    Punteggio:
    48
    Occupazione:
    free lance
    Località:
    Lombardia
    la ricevuta è sempre presente sul sistema effettivo !
    mentre sul sistema di prova mi risulta che i dati vengano periodicamente cancellati,
    immediatamente, si può ottenere una risposta dal sistema di prova, coerente con l'operazione fatta,
    al secondo caricamento ottengo
    upload_2017-9-25_16-46-39.png

    a distanza di giorni (quanti ? ) il protocollo viene dato per inesistente sul sistema di prova
    quindi non "afferro" il problema .... se puoi spiegare meglio, riferendoti al sistema effettivo, non a quello di prova
     
  16. msccmra51

    msccmra51 Nuovo Utente

    Registrato:
    9 Settembre 2017
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Infatti, il problema era che il pdf esisteva, tu non lo trovi perché interroghi il web_test mentre sta sul server di esercizio.
    Da circa mezz'ora rifunziona tutto alla perfezione (mistero SOGEI) e grazie a te si apre automaticamente. Grazie infinite.
     
  17. msccmra51

    msccmra51 Nuovo Utente

    Registrato:
    9 Settembre 2017
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ciao a tutti, scrivo perchè ormai ho esaurito le mie conoscenze nel tentativo di risolvere il seguente problema. Sto implementando InterrogazionePuntuale e, se non ho sbagliato, il codice dovrebbe essere


    Codice:
    
    
    $datiProprietario    = array('cfProprietario' => $cfProprietarioCifrato);
    $numdocumentofiscale = array('dispositivo'    => 1,'numDocumento' => $numDocumento );
    $iddocumentofiscale  = array('pIva'=> $piProprietario, 
                                  'dataEmissione' => $dataEmissione,
                                  'numDocumentoFiscale' => $numdocumentofiscale);  
                                                                           
                                                                             
    $output = $client->InterrogazionePuntuale(array("interrogazionePuntualeRequest" =>(array("pinCode" => $pincodeInvianteCifrato,
                                                                                            "datiProprietario"  => $datiProprietario,
                                                                                            "idDocumentoFiscale" => $iddocumentofiscale))));
    
    In effetti il file log mi da il seguente errore:
    Evidentemente c'è un errore col pincode ma non riesco ad individuarlo. Confermo che la variabile $pincodeInvianteCifrato contiene il giusto valore.

    Anche LinuxHoYeah ha segnalato il medesimo problema un anno fa (https://forum.mrwebmaster.it/threads/730-precompilato-di-uno-snippet.44833/page-12#post-186743), ma non c'è stata risposta qui sul forum. Qualcuno si è trovato nella medesima situazione ed ha risolto? Grazie a tutti!
    Mauro
     
  18. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    1.917
    Mi Piace Ricevuti:
    71
    Punteggio:
    48
    Occupazione:
    free lance
    Località:
    Lombardia
    prova a compilare l'array in modo completo, (così la puoi anche controllare)
    PHP:
    $SoapRequest = array
    (
        
    "pincode"                 => $pincodeInviante,
        
    "datiProprietario"        => array
        (
            
    "cfProprietario"      => $cfProprietarioCifrato,
            
    "codiceRegione"       => $codiceRegione,
            
    "codiceAsl"           => $codiceAsl,
            
    "codiceSSA"           => $codiceSSA,
        ),
        
    "opzionale1"              => $opzionale1,
        
    "opzionale2"              => $opzionale2,
        
    "opzionale3"              => $opzionale3,
        
    "idDocumentoFiscale"      => array
        (
            
    "pIva"                => $piProprietario,
            
    "dataEmissione"       => $ric_dataEmissione,
            
    "numDocumentoFiscale" => array
            (
                
    "dispositivo"     => $ric_dispositivo,
                
    "numDocumento"    => $ric_numDocumento,
            )
        )
    );

    try { 
    $output $client->InterrogazionePuntuale($SoapRequest); }
    catch ( 
    SoapFault $e )
    ....
    ....
    fai sapere grazie
     
  19. msccmra51

    msccmra51 Nuovo Utente

    Registrato:
    9 Settembre 2017
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Grazie Marino, ora è sparito l'errore PHP. Vedo che non hai usato l'elemento "interrogazionePuntualeRequest", forse era quello l'errore. Il print_r($output) riporta:

    stdClass Object ( [esitoChiamata] => 1 [listaMessaggi] => stdClass Object ( [messaggio] => stdClass Object ( [codice] => WS99 [descrizione] => OPERAZIONE NON COMPLETATA [tipo] => E ) ) )
     
  20. msccmra51

    msccmra51 Nuovo Utente

    Registrato:
    9 Settembre 2017
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Dimenticavo di dirti che ho tolto il codice SSA dato che, come medico, non ce l'ho.
     
Sto caricando...

Condividi questa Pagina