Lettura fatture p7m in ricezione in PHP

si è una fattura in utf-16 anziché utf-8
simplexml_load_string non è in grado di leggerne il contenuto e ritorna FALSE.
quindi ho dovuto applicare una condizione che in caso di FALSE, prova ad interpretare la stringa con
SimpleXMLElement

anche se probabilmente potrei usare direttamente SimpleXMLElement

Per la lettura potete provare anche questo : Decodifica Firma CADES - BES / php

Ciao,
scusa se intervengo in questo thread ma interessa molto la tua risposta.
Ho problemi proprio con l’istruzione di openSSL che hai postato tu (ho creato un thread apposito sul forum, se ti va puoi rispondermi li). Io sviluppo in .net ma non ho trovato librerie che gestiscano direttamente i file p7m (bouncy castle non lo fa, ed è la piu’ completa e diffusa) ed è per questo che uso le chiamate ad openSSL.
Nel caso puoi suggerirmi qualche libreria adatta? Hai qualche hint o esempio?
Grazie mille!

Guarda chilkat ne parlo anche qui.

guardo subito. Grazie!

Scusate se mi intrometto, ma avrei bisogno di capire come utilizzare il comando PHP per estrarre la fattura XML dal file P7M. Utilizzando il comando:
openssl smime -verify -inform DER -in fattura.xml.p7m -noverify -out fattura.xml
sono riuscito ad ottenere il file XML. Come lo traduco in PHP (ho un server con PHP 5.3)

Grazie per il vostro preziosissimo aiuto!

Se il tuo server te lo permette puoi usare exec o system o popen per eseguire quel comando da dentro php, altrimenti puoi seguire le indicazioni di questo thread per implementarlo nativamente in php usando le funzioni openssl.

Scusate, se il mio server non permette i comandi exec o system come faccio ad estrarre l’xml in php? Ho anche fatto varie prove con il comando openssl_pkcs7_verify ma non sono arrivato a nulla.
Grazie

Hai guardato questo altro thread ?

é abbastanza ben spiegato da italjack come ha fatto ad arrivarci in fondo…

  1. Il p7m deve essere trasformato in formato smime
  2. devi aver una lista di CA (anche se poi di fatto puoi ignorare la verifica

Salve a tutti,
io ho utilizzato uno script python che utilizzo poi da php.

Qui il link: https://github.com/Laischon/P7M-Extract

Che ne pensate? Non effettuo verifica della firma e null’altro.

Giusto per completezza segnalo questo repository:

In due righe si importa il file P7M e si esporta il file XML

$digitalDocument = \FatturaElettronicaPhp\FatturaElettronica\DigitalDocument::parseFrom($nomeFileP7M);
$digitalDocument->write($nomeFileXML);