Docusign 创建信封并将模板应用于新添加的文档 Laravel 5.5
Docusign create envelope and apply template to newly added document Laravel 5.5
以下是我发送文档以供签名的方式,我需要 运行 AutoPlace 在此附加文档上,但我无法使其正常工作。此代码有效,但未放置我在此模板中设置的自动放置。
$client = new DocuSign\Rest\Client([
'username' => config("docusign.DOCUSIGN_USERNAME"),
'password' => config("docusign.DOCUSIGN_PASSWORD"),
'integrator_key' => config("docusign.DOCUSIGN_INTEGRATOR_KEY"),
]);
$templateRole = $client->templateRole([
'email' => <email>,
'name' => <name>,
'role_name' => 'Client',
]);
$envelopeDefinition = $client->envelopeDefinition([
'status' => 'sent',
'email_subject' => 'Signature Required On Your Order ',
'template_id' => '<docusign template id>',
'template_roles' => [
$templateRole,
],
]);
$doc = Storage::disk('local')->url('mypdf.pdf');
$envelopeOptions = $client->envelopes->createEnvelopeOptions([
'documents' => [
'documentBase64' => base64_encode($doc),
'name' => 'mypdf.pdf',
],
]);
$envelopeSummary = $client->envelopes->createEnvelope($envelopeDefinition, $envelopeOptions);
print_R($envelopeSummary);
die();
能否请您建议我如何添加该代码..在此先感谢。
您使用了错误的代码模式。使用您的代码,您可以应用模板,也可以将文档添加到信封中,但您将无法将模板应用于文档。要将模板应用于文档,您需要使用 Composite Template。如果您在服务器模板和添加的文档中都存在锚字符串(自动放置),那么使用复合模板,您将用添加的文档替换服务器模板文档。一个例子如下。 Server Template - 1afc0348-e853-4a0c-92db-06101168eb4d
有一个带有锚字符串(autoplace)的文档,并且文件名 - “document
”节点中的“Added Document Agreement
”有新文档,需要从服务器应用 autoplace 锚字符串模板。下面的代码将展示如何使用复合模板实现这一点。
{
"compositeTemplates": [
{
"document": {
"documentBase64": "<Base64>",
"documentId": "1",
"fileExtension": "pdf",
"name": "Added Document Agreement"
},
"inlineTemplates": [
{
"recipients": {
"signers": [
{
"email": "email@gmail.com",
"name": "John Doe",
"recipientId": "1",
"roleName": "InternalSigner",
"routingOrder": "1"
}
]
},
"sequence": "2"
}
],
"serverTemplates": [
{
"sequence": "1",
"templateId": "1afc0348-e853-4a0c-92db-06101168eb4d"
}
]
}
],
"status": "sent"
}
以下是我发送文档以供签名的方式,我需要 运行 AutoPlace 在此附加文档上,但我无法使其正常工作。此代码有效,但未放置我在此模板中设置的自动放置。
$client = new DocuSign\Rest\Client([
'username' => config("docusign.DOCUSIGN_USERNAME"),
'password' => config("docusign.DOCUSIGN_PASSWORD"),
'integrator_key' => config("docusign.DOCUSIGN_INTEGRATOR_KEY"),
]);
$templateRole = $client->templateRole([
'email' => <email>,
'name' => <name>,
'role_name' => 'Client',
]);
$envelopeDefinition = $client->envelopeDefinition([
'status' => 'sent',
'email_subject' => 'Signature Required On Your Order ',
'template_id' => '<docusign template id>',
'template_roles' => [
$templateRole,
],
]);
$doc = Storage::disk('local')->url('mypdf.pdf');
$envelopeOptions = $client->envelopes->createEnvelopeOptions([
'documents' => [
'documentBase64' => base64_encode($doc),
'name' => 'mypdf.pdf',
],
]);
$envelopeSummary = $client->envelopes->createEnvelope($envelopeDefinition, $envelopeOptions);
print_R($envelopeSummary);
die();
能否请您建议我如何添加该代码..在此先感谢。
您使用了错误的代码模式。使用您的代码,您可以应用模板,也可以将文档添加到信封中,但您将无法将模板应用于文档。要将模板应用于文档,您需要使用 Composite Template。如果您在服务器模板和添加的文档中都存在锚字符串(自动放置),那么使用复合模板,您将用添加的文档替换服务器模板文档。一个例子如下。 Server Template - 1afc0348-e853-4a0c-92db-06101168eb4d
有一个带有锚字符串(autoplace)的文档,并且文件名 - “document
”节点中的“Added Document Agreement
”有新文档,需要从服务器应用 autoplace 锚字符串模板。下面的代码将展示如何使用复合模板实现这一点。
{
"compositeTemplates": [
{
"document": {
"documentBase64": "<Base64>",
"documentId": "1",
"fileExtension": "pdf",
"name": "Added Document Agreement"
},
"inlineTemplates": [
{
"recipients": {
"signers": [
{
"email": "email@gmail.com",
"name": "John Doe",
"recipientId": "1",
"roleName": "InternalSigner",
"routingOrder": "1"
}
]
},
"sequence": "2"
}
],
"serverTemplates": [
{
"sequence": "1",
"templateId": "1afc0348-e853-4a0c-92db-06101168eb4d"
}
]
}
],
"status": "sent"
}