feimx / csd
此软件包允许您加密、验证并将 .cer 和 .key 文件转换为 .pem,用于墨西哥的电子发票
v1.0
2018-04-16 21:25 UTC
Requires
- php: >=5.3.0
- nesbot/carbon: ~1.14
Requires (Dev)
- phpspec/phpspec: ~2.0
This package is auto-updated.
Last update: 2024-09-20 04:35:27 UTC
README
此软件包允许您加密、验证并将 .cer 和 .key 文件转换为 .pem,用于墨西哥的电子发票。
简介
Csd 提供了一种机制,可以将您的 .cer 和 .key 文件转换为 .pem,这是在墨西哥进行电子发票所必需的。
同时,它还允许您使用您需要的密码将密钥 (.key) 加密为 .der。
require 'vendor/autoload.php'; use JorgeAndrade\Csd; use JorgeAndrade\Exceptions\CsdException; $cer = getcwd() . "/csds/aad990814bp7_1210261233s.cer"; $key = getcwd() . "/csds/aad990814bp7_1210261233s.key"; $rfc = "AAD990814BP7"; $pass = "12345678a"; $validar = new Csd($cer, $key, $rfc, $pass, $path = getcwd() . "/csds/"); try { $validar->convertCerToPem(); $validar->convertKeyToPem(); } catch (CsdException $e) { var_dump($e->getMessage()); }
安装
只需使用 composer 安装软件包
composer require jorgeandrade/csd
composer 安装完成后,只需导入软件包并创建一个新的实例,传入相应的参数即可
require 'vendor/autoload.php'; use JorgeAndrade\Csd; use JorgeAndrade\Exceptions\CsdException; $cer = getcwd() . "/csds/aad990814bp7_1210261233s.cer"; $key = getcwd() . "/csds/aad990814bp7_1210261233s.key"; $rfc = "AAD990814BP7"; $pass = "12345678a"; //contraseña de la llave privada $path = getcwd() . "/csds/"; //este parametro es opcional, por defecto usa **getcwd() . "/csds/"** $validar = new Csd($cer, $key, $rfc, $pass, $path);
使用
转换、加密、验证和获取操作非常简单。如果出现错误,函数将抛出类型为 JorgeAndrade\Exceptions\CsdException 的异常。
将 CER 转换为 PEM
$validar->convertCerToPem();
将 KEY 转换为 PEM
$validar->convertKeyToPem();
验证 csd 的有效期
如果一切顺利,将返回一个数组,其中包含证书的有效期起始日期和结束日期,每个日期都扩展了 DateTime 类。
$periodo = $validar->verifyValidityPeriod(); var_dump($periodo); /** array(2) { ["fecha_inicial"]=> object(DateTime)#4 (3) { ["date"]=> string(26) "2012-10-26 19:22:43.000000" ["timezone_type"]=> int(2) ["timezone"]=> string(3) "GMT" } ["fecha_final"]=> object(DateTime)#5 (3) { ["date"]=> string(26) "2016-10-26 19:22:43.000000" ["timezone_type"]=> int(2) ["timezone"]=> string(3) "GMT" } } **/
将 KEY.PEM 加密为 DER
要加密,首先需要将密钥转换为 pem
$validar->convertKeyToPem(); $validar->encryptPemInToDer($pass);
验证 CSD 是否有效
$check = $validar->verifyValidCsd(); //(bool)
获取证书编号
$no_certificado = $validar->getNoCertificado();
许可证
Csd 是一个开源软件项目,遵循 MIT 许可证