accordous / d4sign-laravel
D4Sign 是一个符合《关于推进电子签名应用的若干规定》2.200-2/01要求的电子签名平台,即保证真实性、完整性和不可抵赖性。因此,通过D4Sign完成的所有签名都具有法律效力。
Requires
- php: ^8.1
- ext-json: *
- guzzlehttp/guzzle: ^6.0|^7.0
- illuminate/support: ^8.0|^9.0
Requires (Dev)
- orchestra/testbench: ^6.7
- phpunit/phpunit: ^9.5
This package is not auto-updated.
Last update: 2024-09-21 00:44:36 UTC
README
非官方的D4Sign REST API接口集成SDK。
安装
打开文件 composer.json
并添加以下指令
"require": {
"accordous/d4sign-laravel": "dev-main"
}
通过composer执行以下命令
composer require accordous/d4sign-laravel
创建配置器
php artisan vendor:publish --tag=d4sign-config
配置
在您的 .env 文件中添加以下变量
D4SIGN_ENV = homologacao
| producao
- homologacao,使用演示端点 - 无法律效力
- producao,使用生产端点 - 具有法律效力。
D4SIGN_TOKEN_API = token
D4SIGN_CRYPT_KEY = crypt
步骤
1 - 上传文档
2 - 注册webhook(POSTBack)
3 - 注册签署者
4 - 发送文档进行签名
5 - 使用EMBED D4Sign在您的网站上显示文档
文档
列出所有文档
此对象将返回您的账户中所有文档。
$docs = D4Sign::documents()->find();
列出特定文档
此对象将仅返回请求的文档。
$docs = D4Sign::documents()->find("{UUID-DOCUMENT}");
列出保险箱中所有文档
为了简化请求,考虑实例化一个类
$docs = D4Sign::documents()->safe("{UUID-SAFE}");
此对象将返回与指定保险箱关联的所有文档。
$docs = D4Sign::documents()->safe("{UUID-SAFE}");
列出阶段中所有文档
此对象将返回指定阶段中的所有文档。
$docs = D4Sign::documents()->status("{ID-FASE}");
ID 1 - 处理中 ID 2 - 等待签署者 ID 3 - 等待签名 ID 4 - 完成 ID 5 - 归档 ID 6 - 取消
上传文档
此对象将上传您的文档到D4Sign的服务器。
上传后,文档将在我们的保险箱中加密并加盖一个序列号。
处理完成后,将生成一个预览。处理将在后台进行,即请求不会被阻塞。
所有文档都存储在加密保险箱中,即必须提供UUID-SAFE参数,并确定文档将存储在哪个保险箱中。
$path_file = '/pasta/arquivo.pdf'; $id_doc = D4Sign::documents()->upload('{UUID-SAFE}', $path_file);
注册签署者
此对象将注册文档的签署者,即哪些人需要签署此文档。
$signers = [ ["email" => "email1@dominio.com", "act" => '1', "foreign" => '0', "certificadoicpbr" => '0', "assinatura_presencial" => '0', "embed_methodauth" => 'email', "embed_smsnumber" => ''], ["email" => "email2@dominio.com", "act" => '1', "foreign" => '0', "certificadoicpbr" => '0',"assinatura_presencial" => '0', "embed_methodauth" => 'sms', "embed_smsnumber" => '+5511953020202'] ]; $return = D4Sign::documents()->createList("{UUID-DOCUMENT}", $signers);
列出文档的签署者
此对象将返回文档的所有签署者。
$docs = D4Sign::documents()->listSignatures("{UUID-DOCUMENT}");
发送文档进行签名
此对象将发送文档进行签名,即文档将进入“等待签名”阶段,从该阶段开始,签署者可以签署文档。
$message = 'Prezados, segue o contrato eletrônico para assinatura.'; $workflow = 0; //Todos podem assinar ao mesmo tempo; $skip_email = 1; //Não disparar email com link de assinatura (usando EMBED ou Assinatura Presencial); $doc = D4Sign::documents()->sendToSigner("{UUID-DOCUMENT}",$message, $skip_email, $workflow);
取消文档
此对象将取消文档。
$docs = D4Sign::documents()->cancel("{UUID-DOCUMENT}");
重新发送签名链接
此对象将重新发送签名链接给签署者。
$email = 'email@dominio.com'; $return = D4Sign::documents()->resend('{UUID-DOCUMENT}', $email);
下载文档
此对象将提供一个下载文档的链接。
//Você poderá fazer download do ZIP ou apenas do PDF setando o último parametro. $url_final = D4Sign::documents()->getFileUrl('{UUID-DOCUMENT}','zip'); //print_r($url_final); $arquivo = file_get_contents($url_final->url); //CASO VOCÊ ESTEJA FAZENDO O DOWNLOAD APENAS DO PDF, NÃO ESQUEÇA DE ALTERAR O CONTENT-TYPE PARA application/pdf E O NOME DO ARQUIVO PARA .PDF header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"".$url_final->name.".zip"."\""); echo $arquivo;
WebHooks服务(POSTBack)
列出文档的Webhook
此对象将返回文档中注册的webhook。
$webhook = D4Sign::documents()->webhookList("{UUID-DOCUMENT}");
在文档中注册Webhook
此对象将在文档中注册webhook。
$url = 'http://seudominio.com.br/post.php'; $webhook = D4Sign::documents()->webhookAdd("{UUID-DOCUMENT}",$url);