edmarr2 / d4sign-laravel
D4Sign是一款符合《紧急措施2.200-2/01》要求的电子签名平台,即保证真实性、完整性和不可抵赖性。因此,D4Sign的所有签名都具有法律效力。
v1.2.9
2021-06-14 23:04 UTC
Requires
- ext-json: *
- guzzlehttp/guzzle: ^6.0|^7.0
- illuminate/support: ^6.0|^7.0|^8.0
Requires (Dev)
- orchestra/testbench: ^6.7
- phpunit/phpunit: ^9.5
README
非官方D4Sign REST API集成SDK。
安装
打开composer.json
文件,并添加以下指令
"require": {
"edmarr2/d4sign-laravel": "dev-main"
}
通过Composer执行以下命令
composer require edmarr2/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 - 使用D4Sign EMBED在您的网站上显示文件
文件
列出所有文件
此对象将返回您账户中的所有文件。
$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);