Estou trabalhando em um aplicativo Laravel onde integrei o DocuSign para enviar documentos para assinaturas eletrônicas. Segui a documentação oficial da API do DocuSign para configurar a autenticação JWT e enviar documentos com sucesso. No entanto, quando envio um documento para assinatura, o campo de assinatura não aparece no documento.
Como mencionei, enviei os documentos com sucesso e o código para construção do envelope é o seguinte:
public function buildEnvelope(Request $request): EnvelopeDefinition
{
$fileContent = $request->file('formFile')->get();
$fileName = $request->file('formFile')->getClientOriginalName();
$fileExtension = $request->file('formFile')->getClientOriginalExtension();
$recipientEmail = $request['email'];
$recipientName = $request['name'];
$document = new Document([
'document_id' => "1",
'document_base64' => base64_encode($fileContent),
'file_extension' => $fileExtension,
'name' => $fileName
]);
$sign_here_tab = new SignHere([
'anchor_string' => "**signature**",
'page_number' => "1",
'anchor_units' => "pixels",
'anchor_x_offset' => "100",
'anchor_y_offset' => "300"
]);
$tabs = new Tabs([
'sign_here_tabs' => [$sign_here_tab]
]);
$signer = new Signer([
'email' => $recipientEmail,
'name' => $recipientName,
'recipient_id' => "1",
'tabs' => $tabs
]);
$recipients = new Recipients([
'signers' => [$signer]
]);
$inlineTemplate = new InlineTemplate([
'recipients' => $recipients,
'sequence' => "1"
]);
$compositeTemplate = new CompositeTemplate([
'composite_template_id' => "1",
'document' => $document,
'inline_templates' => [$inlineTemplate]
]);
return new EnvelopeDefinition([
'composite_templates' => [$compositeTemplate],
'email_subject' => "Please sign",
'status' => "sent"
]);
}
Especifiquei o número da página, algumas coordenadas aleatórias, string de âncora e unidades de âncora e esperava que na página 1 em algum lugar eu visse a assinatura do texto
Talvez você queira verificar novamente se a string
**signature**
realmente aparece no seu documento. A aba SignHere será colocada no documento onde o texto aparece, mas esse texto precisa estar no seu documento já. As coordenadas,anchor_x_offset
eanchor_y_offset
, especificam como a aba será deslocada da string âncora. Se você estiver colocando uma aba com strings âncora, não precisa incluir a propriedade do número da página.Se você preferir usar coordenadas para posicionar sua aba, você pode usar as propriedades xPosition e yPosition. Você pode ver esta postagem do blog para exemplos de como o código parece diferente se você usar abas de âncora em vez de coordenadas.