edmarr2/d4sign-laravel

D4Sign是一款符合《紧急措施2.200-2/01》要求的电子签名平台,即保证真实性、完整性和不可抵赖性。因此,D4Sign的所有签名都具有法律效力。

v1.2.9 2021-06-14 23:04 UTC

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

API完整文档

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