josémmo/facturae-php

用于生成、签名和发送电子发票的库

v1.8.1 2024-06-16 10:13 UTC

README

CI Codacy Badge Coverage Última versión estable Versión de PHP Documentación

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)

特性

使用 Facturae-PHP

以下是一些使用 Facturae-PHP 或基于该库代码维护内部分支的组织和软件解决方案

Holded hotelgest InvoiceNinja FacturaScripts

许可证

Facturae-PHP 在 MIT 许可证 下。这意味着你可以将此包用于任何项目(包括商业用途),只要引用此包的使用和作者。