Menu

Acquisisci fattura elettronica: errore caricamento xml

2019-02-20
2019-04-13
  • Luca Bologna

    Luca Bologna - 2019-02-20

    Buongiorno e grazie a tutti, anche se è il mio primo post uso Gazie da anni.
    Ho un problema in fase "Acquisizione file fattura elettronica da fornitore"
    ERROR!=> Il contenuto del file non è un XML valido
    su tutti i .xml.p7m provenienti da Mediocredito Italiano S.p.A.
    (versione in uso 7.21 - piattaforma xampp su win10 - nessun problema con altri file p7m)

    Consigli?

     
  • GabrieleV

    GabrieleV - 2019-02-20

    Apri il file xml con il blocco note e posti un'immagine di una parte dei quello che vedi ?
    Se vuoi, puoi allegare qui la fattura.

     

    Last edit: GabrieleV 2019-02-20
  • Antonio de Vincentiis

    Probabilemente è encodato base64

     
  • Andrea Biasi

    Andrea Biasi - 2019-02-20

    alcuni file firmati danno ancora problemi, estrai l'xml dal file con un programma opportuno (aruba sign)

     
  • Luca Bologna

    Luca Bologna - 2019-02-20

    ecco una immagine di quello che si ottine dal blocco note

     
  • Luca Bologna

    Luca Bologna - 2019-02-20

    Grazia a tutti per la risposte.
    se fosse encodato base 64, la funzione "tryBase64Decode" non dovrebbe già vederlo correttamente?
    ovviamente salvandolo da aruba sign lo vede correttamente ma dal momento che lo stesso identico problema si presenta anche su altre fatture avrei voluto risolverlo

     
  • GabrieleV

    GabrieleV - 2019-02-20

    Non è in base64, probabilmente ha dei caratteri UTF8 dentro.
    Ti dà qualche errore quando lo apri col blocco note ? Vedi caratteri strani ?
    Se vuoi inviamelo via mail, lo controllo.

     
  • Luca Bologna

    Luca Bologna - 2019-02-21

    visualizzando il$invoiceContent dopo le linee:

    if (FALSE === @$doc->loadXML(utf8_encode($invoiceContent))) {
                // elimino le sequenze di caratteri non stampabili aggiunti dalla firma (da testare approfonditamente)
                $invoiceContent = preg_replace('/[[:^print:]]/', "", $invoiceContent);
                if (FALSE === @$doc->loadXML(utf8_encode($invoiceContent))) {
                    $doc->loadXML(recoverCorruptedXML($invoiceContent));
                }
            }
    

    appare:
    06H&0!10`He0H<ns1:fatturaelettronica xmlns:ns1="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2" versione="FPR12"><fatturaelettronicaheader><datitrasmissione><idtrasmittente><idpaese>IT</idpaese><idcodice>97249...</idcodice></idtrasmittente></datitrasmissione></fatturaelettronicaheader></ns1:fatturaelettronica>

    credo che il problema sia nei primi caratteri

     
  • Luca Bologna

    Luca Bologna - 2019-02-21

    in modo molto "sporco" ho risolto inserendo le seguenti linee:

                    if(substr($invoiceContent,0,1)!='<'){
                        //posizione del primo <, se ci sono caratteri davanti li elimino (da rivedere!!!)
                        $posizione =  strpos($invoiceContent,"<");
                        $invoiceContent = substr($invoiceContent,$posizione);
                        //se non trovo l'apertura del xml la inserisco (da rivedere!!!)
                        if(!strpos($invoiceContent,"<?xml")){$invoiceContent = '<?xml version="1.0" encoding="ISO-8859-1"?>'.$invoiceContent;}
                    }
    

    ovviamente con questa soluzione al momento tutti gli allegati saltano ma almeno la parte di acquisizione funziona.

    inoltre, bisognerebbe sistemare la parte relativa al formato degli allegati, cioè, molti xml riportano il formato del file in campo separato, esempio:
    ...
    <allegati><nomeattachment>Fattura</nomeattachment><formatoattachment>PDF</formatoattachment>
    ...
    e gazie non ricostruisce la corretta estensione del file proponendo un generico file allegato che viene salvato senza estensione e quindi non facilmente "apribile" successivamente</allegati>

    Negli xml si sta vedendo di tutto, alcuni hanno allegati chiamati fattura.pdf e poi nella realtà sono degli .zip, altri hanno numeri di linee che vanno di 10 in 10... più che rincorrere i fix ai singoli problemi servirebbe da parte di tutti "delle buore regole di creazione"

     
  • Angelo Romano

    Angelo Romano - 2019-04-13

    SORPRESA!

    <p:fatturaelettronicasemplificata xmlns:pfx31="http://www.tibco.com/ns/no_namespace_schema_location/RMCA_FAT_WRITER/Schemas/aliquoteIVA.xsd" xmlns:ns3="http://telecomitalia.it/s2d/soa/esb_etl/logger" xmlns:pfx41="http://www.tibco.com/ns/no_namespace_schema_location/RMCA_FAT_WRITER/Schemas/metadati.xsd" xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.0" versione="FSM10" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pfx6="http://www.fatturapa.gov.it/sdi/fatturapa/v1.0" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:pfx1="http://www.tibco.com/ns/no_namespace_schema_location/RMCA_FAT_WRITER/Schemas/fattura_SAP_RMCA.xsd"></p:fatturaelettronicasemplificata>

    SIGH...

     

Log in to post a comment.