我正在开发一个 Laravel 应用程序,其中集成了 DocuSign 来发送文档进行电子签名。我按照官方 DocuSign API 文档设置了 JWT 身份验证并成功发送了文档。但是,当我发送文档进行签名时,文档上没有显示签名字段。
正如我提到的,我成功发送了文件,构建信封的代码如下:
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"
]);
}
我已经指定了页码、一些随机坐标、锚字符串和锚单位,并期望在第 1 页的某个地方看到文本签名
您可能需要仔细检查字符串
**signature**
是否确实出现在您的文档中。SignHere 选项卡将放置在出现该文本的文档中,但该文本必须已存在于您的文档中。坐标anchor_x_offset
和anchor_y_offset
指定选项卡与锚字符串的偏移方式。如果您放置带有锚字符串的选项卡,则无需包含页码属性。如果您希望使用坐标来放置标签,则可以使用 xPosition 和 yPosition 属性。您可以查看这篇博文,其中的示例说明了使用锚标签和坐标时代码的不同之处。