ylly / certsign
PHP库,用于集成CertEurope的CertSign
1.6.1
2021-11-17 16:04 UTC
Requires
- php: >=5.6
- ext-curl: *
- ext-gd: *
- ext-json: *
- symfony/yaml: >=2.2
Requires (Dev)
- phpunit/phpunit: >=4.0
README
此库允许您轻松将CertEurope的CertSign集成到您的项目中。
要求
- PHP 5.4+
- PHP CURL
- PHP GD
- PHP需要编译支持FreeType,否则提供的图像生成服务将回退到标准文本
限制
- 仅实现SYNC签名模式
安装
composer require ylly/certsign
使用
转换证书
此库使用PEM证书,因为CertSign提供P12文件,您需要将此证书转换为PEM格式
您需要输入证书的密码(您可以使用-passin 'pass:my_password'参数)
openssl pkcs12 -in cert.p12 -out cert.pem
创建签名者
签名者管理认证和签名
您可以从YAML配置文件创建签名者
$signator = SignatorFactory::createFromYamlFile('/path/to/config.yml');
或从配置的键值数组
$signator = SignatorFactory::createFromArray($configArray);
填写用户信息和文件
用户信息和文件存储在签名请求中
$signature = Signature::create()->setImage('/path/to/sign.png', false); //$signature = Signature::create()->setImage('BASE64'); //$signature = Signature::create()->setImage(new Image(...)); $request = Request::create() ->setHolder('Firstname', 'Lastname', 'certsign@ylly.fr', '0601020304') ->addDocument('Document-1', '/path/to/doc.pdf', $signature, false) ->addDocument('Document-2', 'BASE64', $signature);
签名文件
您有两种方式可以签名文件,带认证或不带认证
认证可以通过电子邮件或短信处理
带认证(OTP)
$request->setOTP('0601020304'); // Will send a SMS //$request->setOTP('certsign@ylly.fr'); // Will send an Email // Generate the order, returns the order ID $orderId = $signator->createOrder($request); // Send the OTP, can be reused to generate a new OTP $signator->validate($orderId); // Create the signature request with the documents and signature image $signator->createRequest($request, $orderId); // Enter OTP given by SMS or Email, will return false if the code is invalid // Returns the signed documents $documents = $signator->sign($orderId, 'MyOTP');
不带认证(直接签名)
// Generate the order, returns the order ID $orderId = $signator->createOrder($request); // Create the signature request with the documents and signature image $signator->createRequest($request, $orderId); // Returns the signed documents $documents = $signator->sign($orderId);
配置文件
env: test # or prod cert: /etc/ssl/certsign.pem cert_password: password proxy: locahost:8080 # optionnal web proxy
高级使用
提供了一个日志接口来管理输出的日志,您可以在签名者上注册您的监听器
class Listener implement LogListenerInterface { public function recieve($level, $message) { // do something } } $signator->addListener(new Listener());
您可以使用以下脚本生成简单的图像,而不是使用静态图像
$image = new Image(100, 50, new Color(255, 255, 255)); $image->setStyle(new TextStyle(0, 0, 12, 2, new Color(0, 0, 0)); $image->addText('SignText');