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.
This package has no released version yet, and little information is available.
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);