SDK em PHP para o Autentique
SDK em php para assinatura digital de documentos utilizando o Autentique., (*1)
, (*2)
Observação
Essa SDK foi construída devido a necessidade de integração de um projeto de terceiro com o Autentique. Foi publicada com a ideia de que possa ser útil para outras pessoas. Este repositório (e, consequentemente, seu dono) não possuem qualquer vínculo com o Autentique., (*3)
Como instalar
composer require marciodojr/autentique
Como usar
use Mdojr\Autentique\Autentique;
use Mdojr\Autentique\Endpoint;
use GuzzleHttp\Client;
$client = new Client([
'base_uri' => Endpoint::PRODUCTION,
'headers' => [
'X-Autntiq-Api' => $productionToken
]
]);
$autentique = new Autentique($client);
// Manipulação de conta
$acc = $autentique->account();
// Manipulação de Documentos
$doc = $autentique->document();
// Manipulação de Assinaturas
$sign = $autentique->signature();
// Manipulação de Pastas
$folder = $autentique->folder();
Conta
Informações de conta:, (*4)
$result = $acc->info();
Documento
Listar todos os documentos que não estão em uma pasta:, (*5)
$page = 1;
$count = 60;
$s = ''; // opcional
$result = $doc->listNotInFolder($page, $count, $s);
Resgata informações sobre documento específico, (*6)
$uuid = '9ab23456325c40c2a5023051cf4bbf0e' // uuid do documento
$result = $doc->retrieve($uuid);
Lista apenas documentos recebidos que não estão em numa pasta, (*7)
$page = 1;
$count = 60;
$s = ''; // opcional
$doc->listReceivedNotInFolder($page, $count, $s);
Lista apenas documentos enviados, (*8)
$page = 1;
$count = 60;
$s = ''; // opcional
$doc->listOnlySent($page, $count, $s);
Criar um novo documento, (*9)
$nome = 'Contrato de aluguel';
$partes = [
[
'email' => 'umemail@gmail.com',
'funcao' => 'assinar'
]
];
$arquivo = fopen('meu_arquivo.txt', 'r');
$rejeitavel = false;
$mensagem = 'Mensagem qualquer'; // opcional
$lembreteAssinatura = false; // opcional
$lembreteVencimento = true; // opcional
$frequencia = 'semanal'; // ou 'diario' opcional
$diasVencimento = 7; // opcional
$dataVencimento = '2018-09-10'; // opcional
$qrCode = 'B'; // opctional
$doc->create(
$nome,
$partes,
$arquivo,
$rejeitavel,
$mensagem,
$lembreteAssinatura,
$lembreteVencimento,
$frequencia,
$diasVencimento,
$dataVencimento,
$qrCode
);
Reenviar email de assinatura para os signatários que não assinaram/rejeitaram, (*10)
$uuid = '9ab23456325c40c2a5023051cf4bbf0e'; // uuid do documento
$doc->resendNotSignedOrRejected($uuid);
Remover documento, (*11)
$uuid = '9ab23456325c40c2a5023051cf4bbf0e'; // uuid do documento
$result = $doc->deleteDocument($uuid);
Assinatura
Resgatar informações sobre assinatura, (*12)
$token = 'bf0e456325c40c2a5023051cf4';
$result = $sign->retrieve($token);
Signatário aceitar o documento, (*13)
$token = 'bf0e456325c40c2a5023051cf4';
$result = $sign->accept($token);
Signatário rejeitar o documento (se po), (*14)
$token = 'bf0e456325c40c2a5023051cf4';
$motivo = 'Não estou de acordo com os termos';
$result = $sign->reject($token, $motivo);
Pasta
Listar pasta, (*15)
$s = ''; // opcional
$result = $folder->list($s);
Resgatar informações da pasta, (*16)
$uuid = '456325c40c2a5023051cf456325c40';
$result = $folder->retrieve($uuid);
Listar documentos da pasta, (*17)
$uuid = '456325c40c2a5023051cf456325c40';
$s = '' // opcional
$result = $folder->listDocuments($uuid, $s);
Criar pasta, (*18)
$nome = 'Pasta XYZ';
$result = $folder->create($nome);
Mover documentos para pasta, (*19)
$folderUuid = '456325c40c2a5023051cf456325c40';
$docSignUuids = [
'456325c40c2a5023051cf56656325c40',
'456325c40c2a502345451cf456325c40',
'456325c40c2a502305ffsdf456325c40'
]; // token de assinaturas de documentos
$result = $folder->moveDocumentsTo($folderUuid, $docSignUuids);
Atualizar informações da pasta, (*20)
$uuid = '456325c40c2a5023051cf456325c40';
$nome = 'Outro nome';
$result = $folder->update($uuid, $nome);
Remover pasta (arquivos são movidos para "Todos"), (*21)
$uuid = '456325c40c2a5023051cf456325c40';
$result = $folder->deleteFolder($uuid);
https://autentique.docs.apiary.io, (*22)
Como testar
Por padrão todas as requisições são simuladas:, (*23)
composer test
Caso queira testar contra o ambiente de sandbox:, (*24)
export AUTENTIQUE_TOKEN=sandbox_token
export AUTENTIQUE_ENDPOINT=endpoint_url
composer test
Licença
MIT, (*25)
TODO
- Testes para erros 4xx de pastas e assinaturas.
- Tratamento de erros de falha de conexão (5xx).