730 precompilato + di uno snippet

manuel_1975

Nuovo Utente
21 Dic 2016
20
0
1
48
Manziana
www.quickyweb.it
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
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
scusate, non mi piace lasciare questa discussione "non terminata", quindi posto l'ultimo scambio privato,
manuel_1975 ha scritto:
non so cosa hai fatto ma funziona!!!
sono contento che funzioni,
in realtà eseguendo solo credenziali, mi sono stati segnalati errori nello script che ho corretto, null'altro di particolare
 

msccmra51

Utente Attivo
9 Set 2017
78
3
8
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:

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
Mi permetto di inviare una modifica al file FattureInvioEsito.php che ora può ricevere anche i reports filtrati in un intervallo di date
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
 

msccmra51

Utente Attivo
9 Set 2017
78
3
8
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:

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
"non è un file pdf o è corrotto",
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 ?
 

msccmra51

Utente Attivo
9 Set 2017
78
3
8
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!!
 

msccmra51

Utente Attivo
9 Set 2017
78
3
8
Con grande rammarico mi correggo, ne apre solo uno tra quelli che arrivano nel periodo scelto con datainizio e datafine.
 

msccmra51

Utente Attivo
9 Set 2017
78
3
8
Ecco come si prentano i pdf. L'unico che si visulizza ha comunque un warning che potrebbe essere utile per capire il problema. Ciao
 

Allegati

  • pdf1.PNG
    pdf1.PNG
    115,5 KB · Visite: 438
  • pdf2.PNG
    pdf2.PNG
    106,5 KB · Visite: 499

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
Con grande rammarico mi correggo, ne apre solo uno tra quelli che arrivano nel periodo scelto con datainizio e datafine.
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:

msccmra51

Utente Attivo
9 Set 2017
78
3
8
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!
 

Allegati

  • Schermata 2017-09-25 alle 12.38.40.png
    Schermata 2017-09-25 alle 12.38.40.png
    135,9 KB · Visite: 373

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
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
 

msccmra51

Utente Attivo
9 Set 2017
78
3
8
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.
 

msccmra51

Utente Attivo
9 Set 2017
78
3
8
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:
PHP Fatal error: SOAP-ERROR: Encoding: object has no 'pincode' property in

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.mrw.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
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
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
 

msccmra51

Utente Attivo
9 Set 2017
78
3
8
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 ) ) )
 
Discussioni simili
Autore Titolo Forum Risposte Data
pup3770 campo precompilato MySQL 1
novello88 [EXCEL] Calendario precompilato Windows e Software 1
A cancellare form precompilato Classic ASP 2
B Campo form precompilato Classic ASP 3
A For in uno switch PHP 1
A Riprodurre uno schema colore Photoshop 15
L Non riesco a riprodurre uno sfondo Photoshop 0
R Distribuire uno Script "Facebook Auto Post" PHP 0
rebeca Come Unire file PST in Uno? Windows e Software 0
M temi premium Shopify da 180$ l'uno a prezzi bassissimi Altri Annunci 0
A eliminare caratteri speciali mettendo uno spazio PHP 0
U Cerco un graphic designer e uno sviluppatore Android Offerte e Richieste di Lavoro e/o Collaborazione 1
C Salve a tutti, sono uno studente Presentati al Forum 1
G Fare uno sfondo con il prato e degli alberi Photoshop 0
K Help: problema con uno script di booking in php! PHP 0
A Creare con Javascript un percorso all'interno di uno spazio Javascript 0
D [Javascript] inserire uno script in un file php Javascript 6
P [PHP] Contare quante volte uno stesso id si ripete nella tabella PHP 12
giorgiacampus Vendo un account Instagram da 5,7k e uno da quasi 3k Annunci servizi di Social Media Marketing 2
T interpretare uno script php non fatto da me... PHP 3
M [PHP] valore dentro uno shortcode PHP 0
T Artisti: Uno o due profili Instagram? Social Media Marketing 2
S [PHP] Ricercare Uno Specifico Carattere In Una Precisa Posizione PHP 3
T mostrare il riultato di uno script php Ajax 2
momeraths [WordPress] Problema creazione di uno shortcode WordPress 2
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
L Smartphone per fotografiaSto cercando uno smartphone che scatta foto in RAW/DNG e che possa sostitui Smartphone e tablet 2
F [MySQL] Select con due condizioni su uno stesso campo MySQL 7
L [PHP] Inserire google recaptcha in uno form contatti PHP 1
T [PHP] Relazione uno a uno PHP 1
4potere Quanto pagare ad uno studente per i testi in ottica seo per il sito? SEO e Posizionamento 2
F [HTML] Effetto fade su ogni immagine contenute in uno slider HTML e CSS 16
ANDREA20 Creare carrello della spesa e applicare uno sconto E-Commerce 6
M Formazione per diventare uno specialista di Sicurezza Informatica Sicurezza e Virus 3
Gabriele Visioli Come creare uno spoiler in una pagina o post WordPress 1
M Ricercare uno specifico carattere in una precisa posizione PHP 5
novello88 Quanti domini gestisce uno specifico provider? Domini 1
felino [Wordpress] Custom Post Type: plugin per creare uno slider nei widget WordPress 0
M Creare stampe pdf con tabelle relazione uno a molti PHP 0
ecosito CSS: è possibile cambiare font con uno non di uso comune? HTML e CSS 11
M Relazione uno a molti PHP 59
B Problema di visualizzazione di uno Slider in jquery jQuery 4
M Problema relazione uno a molti con 3 tabelle MySQL 4
felino [Oracle] Eseguire uno split di un record Oracle 1
A Visualizzare minuti con due cifre anche se il valore del tag ne riporta solo uno jQuery 1
A Visualizzare minuti con due cifre anche se il valore del tag ne riporta solo uno jQuery 0
Mr. Alex D. Come far apparire un testo preimpostato in una casella di un form di uno script php? PHP 1
felino Google My Business: uno strano errore... Social Media Marketing 3
otto9due Piccolo conflitto jquery.. Chi gli da uno sguardo? jQuery 6
S Un aiuto su uno script di ricerca avanzata in php che sto verificando. PHP 1

Discussioni simili