accordous / d4sign-laravel
A D4Sign é uma plataforma de assinatura eletrônica de documentos que atende os requisitos da Medida Provisória 2.200-2/01, ou seja, autenticidade, integridade e não repúdio. Trazendo, assim, validade jurídica para todas as assinaturas realizadas através da 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-07 00:32:38 UTC
README
SDK Não oficial de integração á API do serviço D4Sign REST API.
Instalação
Abra o arquivo composer.json
e insira a seguinte instrução
"require": {
"accordous/d4sign-laravel": "dev-main"
}
Via composer, execute o seguinte comando:
composer require accordous/d4sign-laravel
Criação do configurador
php artisan vendor:publish --tag=d4sign-config
Configuração
Coloque dentro do seu .env as seguintes variáveis:
D4SIGN_ENV = homologacao
| producao
- homologação, utiliza o endpoint de demonstração - sem validade jurídica
- produção, utiliza o endpoint de produção - com validade jurídica.
D4SIGN_TOKEN_API = token
D4SIGN_CRYPT_KEY = crypt
Passo a Passo
1º - Realizar o upload do documento
2º - Cadastrar o webhook(POSTBack)
3º - Cadastrar os signatários
4º - Enviar o documento para assinatura
5º - Utilizar o EMBED D4Sign para exibir o documento em seu website
Documentos
Listar TODOS os documentos
Este objeto retornará TODOS os documentos da sua conta.
$docs = D4Sign::documents()->find();
Listar um documento específico
Esse objeto retornará apenas o documento solicitado.
$docs = D4Sign::documents()->find("{UUID-DOCUMENT}");
Listar TODOS os documentos de um cofre
Para simplificar a requisição foi pensado em instanciar uma classe
$docs = D4Sign::documents()->safe("{UUID-SAFE}");
Esse objeto retornará todos os documentos que estiverem associados ao cofre informado.
$docs = D4Sign::documents()->safe("{UUID-SAFE}");
Listar TODOS os documentos de uma fase
Esse objeto retornará todos os documentos que estiverem na fase informada.
$docs = D4Sign::documents()->status("{ID-FASE}");
ID 1 - Processando ID 2 - Aguardando Signatários ID 3 - Aguardando Assinaturas ID 4 - Finalizado ID 5 - Arquivado ID 6 - Cancelado
Realizar o UPLOAD de um documento
Esse objeto realizará o UPLOAD do seu documento para os servidores da D4Sign.
Após o UPLOAD, o documento será criptografado em nossos cofres e carimbado com um número de série.
Após o processamento um preview será gerado. O processamento será realizado em background, ou seja, a requisição não ficará bloqueada.
Todos os documentos ficam armazenados em COFRES criptografados, ou seja, o parâmetro UUID-SAFE é obrigatório e determina em qual cofre o documento ficará armazenado.
$path_file = '/pasta/arquivo.pdf'; $id_doc = D4Sign::documents()->upload('{UUID-SAFE}', $path_file);
Cadastrar signatários
Esse objeto realizará o cadastro dos signatários do documento, ou seja, quais pessoas precisam assinar esse documento.
$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);
Listar signatários de um documento
Esse objeto retornará todos os signatários de um documento.
$docs = D4Sign::documents()->listSignatures("{UUID-DOCUMENT}");
Enviar um documento para assinatura
Esse objeto enviará o documento para assinatura, ou seja, o documento entrará na fase 'Aguardando assinaturas', onde, a partir dessa fase, os signatários poderão assinar os documentos.
$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);
Cancelar um documento
Esse objeto irá cancelar o documento.
$docs = D4Sign::documents()->cancel("{UUID-DOCUMENT}");
Reenviar link de assinatura
Esse objeto irá reenviar o link de assinatura para o signatário.
$email = 'email@dominio.com'; $return = D4Sign::documents()->resend('{UUID-DOCUMENT}', $email);
Realizar o DOWNLOAD de um documento
Esse objeto irá disponibilizar um link para download do documento.
//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 Services (POSTBack)
Listar Webhook de um documento
Esse objeto irá retornar o webhook cadastrado no documento.
$webhook = D4Sign::documents()->webhookList("{UUID-DOCUMENT}");
Cadastrar Webhook em um documento
Esse objeto irá cadastrar o webhook no documento.
$url = 'http://seudominio.com.br/post.php'; $webhook = D4Sign::documents()->webhookAdd("{UUID-DOCUMENT}",$url);