定制 controlaltjeff/p7m-fattura-decoder 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

controlaltjeff/p7m-fattura-decoder

Composer 安装命令:

composer require controlaltjeff/p7m-fattura-decoder

包简介

PHP library per decodificare file PKCS#7 (.p7m) ed estrarre il contenuto XML.

README 文档

README

PHP library per decodificare file .p7m (PKCS#7 signed) ed estrarre il contenuto XML firmato.

A PHP library to decode P7M (PKCS#7 signed) files and extract the signed XML content. Designed with the Italian Fattura Elettronica system in mind.

Installazione

composer require controlaltjeff/p7m-fattura-decoder

Requisiti

  • PHP 5.3+ (runtime) / PHP 8.1+ (sviluppo)
  • ext-dom, ext-libxml
  • openssl CLI (opzionale — usato come strategia di decodifica primaria)

Nota per ambienti PHP 5.3/7.x: i tool di sviluppo (PHPUnit, PHPStan) richiedono PHP 8.1+. Installa la libreria con --no-dev per evitare conflitti:

composer require controlaltjeff/p7m-fattura-decoder --no-dev

Usage

use Controlaltjeff\P7MDecoder\P7MDecoder;

// Da file
$xml = P7MDecoder::decodeFile('fattura.xml.p7m');

// Da stringa
$xml = P7MDecoder::decodeString($p7mContent);

if ($xml === null) {
    throw new \RuntimeException('Impossibile decodificare il file P7M');
}

// Correzioni automatiche applicate durante la decodifica
$corrections = P7MDecoder::getLastCorrections();
foreach ($corrections as $fix) {
    echo "Tag corretto: {$fix['from']}{$fix['to']}\n";
}

Strategie di decodifica (8 livelli)

La libreria tenta la decodifica in ordine, fermandosi al primo successo:

  1. Plain XML — Se già XML valido, restituito direttamente
  2. OpenSSL DERopenssl smime -verify -inform DER
  3. Base64 → DER — Base64 decode + verifica DER
  4. OpenSSL PEMopenssl smime -verify -inform PEM (include conversione Base64 → PEM)
  5. PHP openssl_pkcs7_verify() — Fallback via estensione PHP
  6. Estrazione manuale — Ricerca fragment XML nel binario
  7. Correzione tag — Ricerca fuzzy (Levenshtein) su tag XML danneggiati (OCR, encoding)
  8. Base64 + estrazione manuale — Decodifica base64 + fragment XML

Correzioni automatiche

Oltre alla decodifica, la libreria applica correzioni automatiche su:

  • Tag XML — Correzione fuzzy con distance ≤ 1 rispetto alla lista tag FatturaPA validi
  • Testo OCR/encoding — 30+ pattern di correzione per errori tipici di OCR e trasmissione (es. UnitaMisurahUnitaMisura, DettHaglioLineeDettaglioLinee)

Le correzioni applicate sono accessibili via P7MDecoder::getLastCorrections().

Sviluppo

composer install
composer test
composer stan
composer check

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-06-12

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固