730 precompilato + di uno snippet

perseoclub

Utente Attivo
28 Nov 2015
91
0
6
AGGIORNAMENTI 3:

Nonostante con la versione "essenziale" della variabile $SoapClientParam funzionasse e non mi restituisse errori.. ho fatto ulteriori prove seguendo i tuoi suggerimenti.

Sostanzialmente:
  • ho ri-settato la variabile $SoapClientParam come da te suggerito;
  • ho tolto la linea 80 che serviva a restituirmi il NUM. di PROTOCOLLO, ma che spesso non veniva valorizzata e mi dava l'errore;
  • ho quindi sostituito la ricezione del NUM. di PROTOCOLLO attraverso le funzioni show_var($output) e log_var($output) ...e ottengo sempre il NUM. di PROTOCOLLO a video.. o nel file di LOG. In questo modo posso fare copia/incolla per richiedere l'Esito e/o la RicevutaPDF, passandolo attraverso l'indirizzo .php?protocollo=...
Pertanto (in fase di test) posso asserire che sia tutto RISOLTO! :)

Domattina faccio l'invio definitivo e speriamo bene!

PS: l'alert nel LOG "PHP Deprecated: capture_session_meta is deprecated; its information is now available via stream_get_meta_data() in .../FattureInviaWsdl.php on line ..." rimane comunque.
 

perseoclub

Utente Attivo
28 Nov 2015
91
0
6
Dopo il patema d'animo iniziale, mi sono armato di coraggio. Ho operato in modalità EFFETTIVA.

I webservices della Sogei non mi hanno aiutato.. dopo aver accolto il file .ZIP mi hanno restituito il codice stato 0 per circa mezz'ora. Poi finalmente il codice è passato ad 1 (stato di elaborazione) ed infine a 3 (ACCOLTO).

Delle oltre 4'000 ricevute fiscali ottengo alla fine "soli" 23 warnings → con COD. W003 (CF non in archivio). Adesso provvedo a modificare manualmente questi warnings, laddove possibile.


marino51,
io ti devo fare un monumento! Senza il tuo prezioso e costante aiuto non ce l'avrei mai fatta!! :)

Se decidi di pubblicare il codice ONLINE, attraverso github o cose simili.. metti il pulsante "donazione" perché è il minimo che possiamo fare!
 

claudio56

Utente Attivo
20 Gen 2016
25
0
1
Ciao Marino,
grazie per il link.
Ho fatto varie prove con più tipologie di nominativi sempre in area test. Mi è capitato spesso che un invio andava liscio senza problemi e dopo qualche ora riprovandolo dava a volte credenziali non valide, altre volte problemi di collegamento. Comunque l'invio ufficiale dei dati da parte dei commercialisti sta andando liscio senza problemi.
Ti ringrazio molto dell'aiuto
Ciao
Claudio
 

msccmra51

Utente Attivo
9 Set 2017
78
3
8
il nuovo valore deve essere esposto tra <cfCittadino> e <voceSpesa> ossia:
<cfCittadino>EvdSXiVCOvd................</cfCittadino>
<pagamentoTracciato>NO</pagamentoTracciato>
<voceSpesa>

Spero di essere stato di aiuto
Claudio
Ti ringrazio anche io, non sapevo come fare. Per favore puoi dirmi dove hai trovato questa informazione? Sul portale sistemaTS non trovo più le specifiche tecniche per gli invii. Grazie.
 

msccmra51

Utente Attivo
9 Set 2017
78
3
8
Ciao a tutta la comunità. E' da sabato che il sito test mi restituisce questo errore quando tento di connettermi "HTTPError Fetching http headers". C'è qualcuno che lo sta provando ed ha lo stesso problema? Non ho toccato nulla nella sezione SOAP. Grazie a tutti
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
ciao, questa mattina ho fatto 2 invii sul sistema di test,
il primo, con win 10/2004 e IE11, mi ha dato errore (generico, non specificato),
il secondo, con win 10/2004 e EDGE, è andato a buon fine, ho eseguito lo script con il link costruito così
%windir%\explorer.exe microsoft-edge:http://localhost/test_site/php/test/XML/FattureInviaWsdl.php

questo il risultato
1601965564691.png
 

msccmra51

Utente Attivo
9 Set 2017
78
3
8
Grazie Marino, in effetti ieri pomeriggio ha ripreso a funzionare, tutto il WE è stato off. Non sai mai se è colpa tua o loro.
 

malakian

Nuovo Utente
31 Dic 2020
6
0
1
Ciao ragazzi, e veramente complimenti per il bel lavoro, in particolare a Marino e Rudy, vi devo una birra o due :) , condivido il suggerimento di pubblicare su GitHub in modo da raccogliere anche la mia donazione agli autori!

Scrivo qui perché ho due problemini interessanti
Ho scaricato i sorgenti e adattato FattureGeneraXMLdaTXT.php in modo da recepire gli ultimi aggiornamenti richiesti per l'invio delle fatture di mia moglie (Biologa Nutrizionista, categoria Atri Professionisti) per quest'anno, ovvero:

PHP:
        $pagamentoTracciato = $documentoSpesa->addChild('pagamentoTracciato', $col[_ColPagTracciato]);
        
        $tipoDocumento = $documentoSpesa->addChild('tipoDocumento', 'F');
        
        $flagOpposizione = $documentoSpesa->addChild('flagOpposizione', '0');

            $naturaIVA = $voceSpesa->addChild('naturaIVA', 'N4');

in questo modo ottengo, per una fattura di esempio il bellissimo XML che segue:
XML:
<?xml version="1.0" encoding="utf-8"?>
<precompilata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="730_precompilata.xsd">
    <proprietario>
        <cfProprietario>Ix4OzmfPxB0TTwS6+Hc0enwIhMtunRUkB4CjlDDDns5pCy2iZJ4Qxy+C/X8mMpLRz37tOXnklkkPml5Di32wtQlXpCL2qais/ZjSmwwLldUFvxQPRrwsOSgbH0yK3n+cfgXHbuyTFmjKBAT1dkc5xJ4sTW6qPlaMEIJIevQXvrQ=</cfProprietario>
    </proprietario>
    <documentoSpesa>
        <idSpesa>
            <pIva>00265910661</pIva>
            <dataEmissione>2020-01-07</dataEmissione>
            <numDocumentoFiscale>
                <dispositivo>1</dispositivo>
                <numDocumento>1</numDocumento>
            </numDocumentoFiscale>
        </idSpesa>
        <dataPagamento>2020-01-07</dataPagamento>
        <flagOperazione>I</flagOperazione>
        <cfCittadino>DsinnfxT7GCe+bZsbwq/q0FP99qJCIYVn4PM0k7crNea+2O60gTMzhL6uQ+2pZjyEwWNFIYMVdjbeTTqcFpzvTjNY2W/5WGfcEeDxYerKBN0jmyu3f43PqC1yxKU59lGHgj5yu+bZgCvaSDtkAblZ/IvniSJ65KChIL3eSDlUHQ=</cfCittadino>
        <pagamentoTracciato>NO</pagamentoTracciato>
        <tipoDocumento>F</tipoDocumento>
        <flagOpposizione>0</flagOpposizione>
        <voceSpesa>
            <tipoSpesa>SR</tipoSpesa>
            <importo>40.00</importo>
            <naturaIVA>N4</naturaIVA>
        </voceSpesa>
    </documentoSpesa>
</precompilata>

che su www.xmlvalidation.com viene validato con il nuovo xsd del kit 730_precompilata.xsd, ma una volta che procedo con l'invio ottengo l'errore:

E011 FILE NON CONFORME ALLO SCHEMA DI VALIDAZIONE

leggevo a diversi capitavano errori simili a causa di date non coerenti o P.IVA più lunghe.. io è da due giorni che ci sbatto la testa senza venirne a capo..



Il secondo problema invece riguarda lo script di invio. Ora una volta generato il file ho provveduto alla spedizione tramite SoapUI perché nei log di FattureInviaWsdl.php trovo l'errore

PHP Fatal error: Uncaught Error: Call to undefined function each() in C:\Users\...\730precompilato\FattureInviaWsdl.php:30

l'istruzione è while (list ($key, $val) = each ($output) ) echo $val."<br />"; echo "<p> </p>";

Codice:
[30-Dec-2020 22:12:25 UTC] main .\FattureInviaWsdl.php
[30-Dec-2020 22:12:25 UTC] TEST RUN ***************
[30-Dec-2020 22:12:25 UTC] name                   : Dr. PROVA
[30-Dec-2020 22:12:25 UTC] login                  : PROVAX00X00X000Y
[30-Dec-2020 22:12:25 UTC] password               : Salve123
[30-Dec-2020 22:12:25 UTC] cfProprietario         : PROVAX00X00X000Y
[30-Dec-2020 22:12:25 UTC] cfProprietarioCifrato  : Ix4OzmfPxB0TTwS6+Hc0enwIhMtunRUkB4CjlDDDns5pCy2iZJ4Qxy+C/X8mMpLRz37tOXnklkkPml5Di32wtQlXpCL2qais/ZjSmwwLldUFvxQPRrwsOSgbH0yK3n+cfgXHbuyTFmjKBAT1dkc5xJ4sTW6qPlaMEIJIevQXvrQ=
[30-Dec-2020 22:12:25 UTC] piProprietario         : 00265910661
[30-Dec-2020 22:12:25 UTC] pincodeInviante        : 1234567890
[30-Dec-2020 22:12:25 UTC] pincodeInvianteCifrato : HmhwvMEtyHOwDm5K3YEQ9RZiNAkJ+FvRwXodiABj9HpRbdQUaLa4cyYZU8YqaBsSs4Lq6u85uDci6xowmF7ZrVgLhZ83q4nSi8bSvVDPS5pPStBlOJfvo8AisqDiKdJvEPbkIhBVnbmf28gh28G/vQLkp2RgVEYinPA0LUCz8PQ=
[30-Dec-2020 22:12:25 UTC] PHP Warning:  Undefined array key 1 in C:\Users\Guido\Dropbox\Cartella Condivisa Guido-Luana\Nutrizione Luana\Fatturazione Elettronica e Tessera Sanitaria\Sistema Tessera Sanitaria 2021\php_scripts_GR\Nuova versione\730precompilato\Credenziali.php on line 133
[30-Dec-2020 22:12:25 UTC] File trattato          : Fatture730.zip
[30-Dec-2020 22:12:25 UTC] carico in memoria il file Fatture730.zip
[30-Dec-2020 22:12:25 UTC] definisco il file wsdl InvioTelematicoSpeseSanitarie730p.wsdl
[30-Dec-2020 22:12:25 UTC] definisco the soap server location https://invioSS730pTest.sanita.finanze.it/InvioTelematicoSS730pMtomWeb/InvioTelematicoSS730pMtomPort
[30-Dec-2020 22:12:25 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function each() in C:\Users\...\730precompilato\FattureInviaWsdl.php:30
Stack trace:
#0 {main}
  thrown in C:\Users\...\730precompilato\FattureInviaWsdl.php on line 30

L'errore può dipendere dal fatto che sto usando php 8 ? (da assoluto ignorante di php ho scaricato l'ultima versione che ho trovato sul sito, mentre poi ho letto voi usate la 5.xx )

Grazie mille, e buon San Silvestro :D
 

malakian

Nuovo Utente
31 Dic 2020
6
0
1
Ho risolto il primo problema! Lo racconto perché spero possa essere utile ad altri :)
Visivamente il file XML era corretto, ma..... c'era un "carattere sporco" nel numero della prima fattura scovato andando a guardare l'esadecimale.

il mio txt di partenza ha (aveva) questa struttura:
numero fattura;data;CF;importo;tracciabile

1;07/01/2020;CFCFCF1;40.00;NO;
2;07/01/2020;CFCFCF2;90.00;SI;
3;07/01/2020;CFCFCF3;90.00;NO;
4;10/01/2020;CFCFCF4;90.00;NO;

il fatto che il numero fattura fosse il primo campo ha fatto sì che lo script che genera l'xml includesse il BOM di UTF-8 come numero fattura insieme al numero 1... in questo modo nell'xml era incluso anche  (hex EF BB BF ) tra <numDocumento>1</numDocumento>

modificherò il txt / csv di partenza in modo da saltare la prima colonna tra gli import per generare gli xml....



invece il secondo problema
PHP Fatal error: Uncaught Error: Call to undefined function each()
ancora non l'ho indagato bene / risolto...
 

msccmra51

Utente Attivo
9 Set 2017
78
3
8
Sto aggiornando lo script per inserire i nuovi campi obbligatori da gennaio e vedo che ce n'è uno, pure obbligatorio, che non ricordavo e riguarda l'opposizione all'invio della fattura. Ma se il cittadino si oppone io non la mando, quindi a cosa serve quel campo? Oppure va comunque mandata validandolo alla opposizione? Auguro buon anno a tutti.
 

Allegati

  • 1609443303654.png
    1609443303654.png
    42,1 KB · Visite: 210

malakian

Nuovo Utente
31 Dic 2020
6
0
1
Sto aggiornando lo script per inserire i nuovi campi obbligatori da gennaio e vedo che ce n'è uno, pure obbligatorio, che non ricordavo e riguarda l'opposizione all'invio della fattura. Ma se il cittadino si oppone io non la mando, quindi a cosa serve quel campo? Oppure va comunque mandata validandolo alla opposizione? Auguro buon anno a tutti.
In questo momento lo sto considerando un caso abbastanza teorico, infatti valorizzo l'XML con uno 0 fisso.. però il dubbio è lecito, in caso di opposizione = 1 gli altri campi come vanno valorizzati? si potrebbe chiedere a [email protected]
 

msccmra51

Utente Attivo
9 Set 2017
78
3
8
Spulciando i messaggi di errore che ho ricevuto ho scoperto quanto segue:
se invio una fattura con il flag per opposizione =1 (si oppone) ricevo il messaggio
Codice errore: S050
Descrizione: E' STATO INDICATO IL CF DEL CITTADINO SEBBENE FLG OPPOSIZIONE UGUALE A 1
Quindi deduco che le fatture vanno mandate comunque ma senza il CF se il citadino si oppone.
Vediamo cosa succederà ancora. Bello che nelle FAQ sel Sistema non se ne parli....
 

malakian

Nuovo Utente
31 Dic 2020
6
0
1
Il secondo problema invece riguarda lo script di invio. Ora una volta generato il file ho provveduto alla spedizione tramite SoapUI perché nei log di FattureInviaWsdl.php trovo l'errore

PHP Fatal error: Uncaught Error: Call to undefined function each() in C:\Users\...\730precompilato\FattureInviaWsdl.php:30

l'istruzione è while (list ($key, $val) = each ($output) ) echo $val."<br />"; echo "<p> </p>";

si effettivamente sembra un problema collegata alla versione di php che sto usando.
nella documentazione PHP.net vedo che each() è definita (e deprecata) solo per le versioni 4, 5 e 7.
Se interpreto bene però ho visto che le due istruzioni dove compare each() sono per stampare a video le functions e i Type definiti nel WSDL.. non vitale per l'esecuzione, siete d'accordo?

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>";

ho provato a commentare i due while, ora l'esecuzione si interrompe con questo errore PHP Fatal error: SOAP Fault: (faultcode: HTTP, faultstring: Could not connect to host)

che vedo da questa discussione hanno incontrato in tanti e dipende dalla versione di php e/o versione di TLS, ho provato la soluzione di perseo
https://forum.mrw.it/threads/730-precompilato-di-uno-snippet.44833/post-186503 che ha testato su php7, ma con la 8 che ho io non funziona
e la soluzione che suggeriva Marino
https://forum.mrw.it/threads/730-precompilato-di-uno-snippet.44833/post-211496

ma continuo ad avere lo stesso errore.
@msccmra51 come avevi risolto alla fine?
 

malakian

Nuovo Utente
31 Dic 2020
6
0
1
Con un banale If: se il cliente si oppone metto il suo CodFis="" nell'XML. Ho poi cercato in rete ed effettivamente l'invio, a differenza di quanto è stato finora, va fatto sempre col flag opposizione opportunamente configurato.
No scusa, mi riferisco all'errore PHP Fatal error: SOAP Fault: (faultcode: HTTP, faultstring: Could not connect to host)

qui https://forum.mrw.it/threads/730-precompilato-di-uno-snippet.44833/post-211518 dicevi di aver risolto inserendo
stream_context => ecc
, ma usando il suggerimento di Marino di questo post: https://forum.mrw.it/threads/730-precompilato-di-uno-snippet.44833/post-211496 io continuo ad ottenere Could not connect to host

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,
        ),
    )),
);
 
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