accordous/d4sign-laravel

D4Sign 是一个符合《关于推进电子签名应用的若干规定》2.200-2/01要求的电子签名平台,即保证真实性、完整性和不可抵赖性。因此,通过D4Sign完成的所有签名都具有法律效力。

v2.0 2024-07-26 23:59 UTC

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);

API完整文档

http://docapi.d4sign.com.br/