Se il file di fattura elettronica che bisogna aprire è firmato digitalmente, e cioè ha una seconda estensione p7m, come avete notato il contenuto è tutto sommato leggibile ad occhio perché non viene oscurato, ma semplicemente “inquinato” dai blocchi della firma digitale.
Diventa però inutilizzabile da qualunque parser PHP, e richiede la estrazione del file XML dall’involucro firmato p7m.
Lista della spesa:
- il programma openssl.exe scaricabile da questa pagina (vi serve lo zip dei file binari)
- il file .xml.p7m
La sintassi del comando openssl è come segue:
openssl.exe smime -verify -noverify -in fattura.xml.p7m -inform DER -out fattura.xml
Quindi nel vostro bel codice PHP lancerete qualcosa tipo:
exec("percorso\openssl.exe smime -verify -noverify -in $fatturap7m -inform DER -out percorso\\".basename($fatturap7m,".p7m").".xml",$output);
Avrete quindi disponibile il file XML in chiaro, col quale potrete seguire quanto illustrato in questo articolo.