mateusgalasso/clicksign

União com PHP

Closed this issue · 2 comments

Olá, super top sua API!

Sou muito novo no uso de Apis e gostaria de uma luz sobre como usar ela!

Se você tivesse um exemplo de como inserir um arquivo para uma assinatura com back-end e o front, seria uma luz para minha mente

Agradeço muito!
Segue a imagem, no campo assinatura gostaria de adicionar a opção de fazer o upload de um documento e ele ser assinado com o meu token...
image

Primeiro eu criei uma função que chama cada parte do fluxo

Neste caso o meu documento se chama 'Termo de Compromisso'

private function integraComClickSign(TermoCompromisso $termo, string $path): void
    {
        $this->uploadDocumento($termo, $path);
        $this->criaSignatario($termo);
        $this->adicionaSignatarioDocumento($termo);
        $this->notificaSignatario($termo);
    }

Aqui um exemplo de upload de documento para clicksign.
O primeiro argumento é o caminho onde esta o seu documento para o Laravel encontrar e o segundo é o caminho que vai ficar no clicksign
O clicksing vai te devolver a chave deste documento, a qual eu aconselho guardar pois vc vai precisar nos outros passos

private function uploadDocumento(\App\TermoCompromisso $termo, string $caminho)
    {
        //Chama a URL
        $response = (new Clicksign())->createDocument($caminho, 'path-clicksign/' . $caminho);
        $termo->clicksign_key = $response->object()->document->key;
        $termo->save();
        //Verifica se tudo deu certo
        if ($response->status() !== 201) {
            Log::error('Erro no termo - ', $termo->toArray());
            Log::error('Erro no $response - ', [$response->body()]);

            return Action::danger('Alguma coisa deu errada com o termo');
        }
    }

Depois vc tem que criar o signatário com e-mail e nome. Clicksign vai te devolver a chave desse signatários.

(new Clicksign())->createSigner($this->representante->email, $this->representante->nome);

Então vc adiciona as chaves dos signatários ao documento (key) que você tem.
Dessa maneira

(new Clicksign())->signerToDocument($termo->clicksign_key, $termo->signer_key);

Espero ter ajudado a esclarecer @thiagoprogramando

Primeiro você tem que gravar o arquivo onde o Laravel possa encontrar.
Depois faz os passos acima no Back-End
Coloca um botão no front como "Enviar para Assinatura" (algo assim) dai disparar um evento ou um processo desse fluxo no back-end