josémmo / facturae-php
用于生成、签名和发送电子发票的库
v1.8.1
2024-06-16 10:13 UTC
Requires
- php: >=5.6
Requires (Dev)
Suggests
- ext-curl: For communicating with remote TSA Servers and SOAP Web Services
- ext-fileinfo: For getting MIME types when using FacturaeFile
- ext-openssl: For signing and timestamping both invoices and SOAP requests
- lib-libxml: For parsing SOAP XML responses for FACe and FACeB2B
This package is auto-updated.
Last update: 2024-09-03 14:40:37 UTC
README
Facturae-PHP 是一个纯 PHP 编写的包,允许按照 Facturae 结构化格式生成电子发票,添加电子签名 XAdES 和时间戳,甚至可以发送到 FACe 或 FACeB2B 而无需任何额外的库或类。
只需 25 行代码,并且执行时间低于 0.4 µs,就可以生成、签名和导出一个完全有效的电子发票。
$fac = new Facturae(); $fac->setNumber('FAC201804', '123'); $fac->setIssueDate('2018-04-01'); $fac->setSeller(new FacturaeParty([ "taxNumber" => "A00000000", "name" => "Perico de los Palotes S.A.", "address" => "C/ Falsa, 123", "postCode" => "12345", "town" => "Madrid", "province" => "Madrid" ])); $fac->setBuyer(new FacturaeParty([ "isLegalEntity" => false, "taxNumber" => "00000000A", "name" => "Antonio", "firstSurname" => "García", "lastSurname" => "Pérez", "address" => "Avda. Mayor, 7", "postCode" => "54321", "town" => "Madrid", "province" => "Madrid" ])); $fac->addItem("Lámpara de pie", 20.14, 3, Facturae::TAX_IVA, 21); $fac->sign("certificado.pfx", null, "passphrase"); $fac->export("mi-factura.xsig");
也允许对使用其他程序生成的发票进行签名。
$signer = new FacturaeSigner(); $signer->loadPkcs12("certificado.pfx", "passphrase"); $xml = file_get_contents(__DIR__ . "/factura.xml"); $signedXml = $signer->sign($xml); file_put_contents(__DIR__ . "/factura.xsig", $signedXml);
要求
- PHP 5.6 或更高版本
- OpenSSL(仅用于签名发票)
- cURL(仅用于 时间戳 和 FACe / FACeB2B)
- libXML(仅用于 FACe 和 FACeB2B)
特性
- 100% 符合 2013年12月27日第25号法律
- 根据 Facturae 格式的 3.2、3.2.1 和 3.2.2 版本导出
- 根据基于 XAdES 的 Facturae 3.1 签名策略进行签名
- 根据 RFC3161 进行时间戳签名
- 自动将发票发送到 FACe 和 FACeB2B 🔥
使用 Facturae-PHP
以下是一些使用 Facturae-PHP 或基于该库代码维护内部分支的组织和软件解决方案
许可证
Facturae-PHP 在 MIT 许可证 下。这意味着你可以将此包用于任何项目(包括商业用途),只要引用此包的使用和作者。