мы пытаемся запустить наш первый API-проект DocuSign и столкнулись с проблемой. Мы используем PHP API для DocuSign, и мы пытаемся создать конверт из шаблона, в котором есть статические документы, затем добавить еще один пользовательский документ и отправить конверт. Но мы не можем понять, как заставить это работать.
Изначально мы попытались создать конверт, применить шаблон, затем добавить статический документ, затем загрузить / отправить конверт, который отправляет только шаблон. Затем, после исследования, попытайтесь создать конверт, примените шаблон, загрузите конверт, добавьте статический документ, а затем отправьте, который отправил только статические страницы.
Вот наш текущий код, который мы используем:
public function send($signer_name,$signer_email, $cc_name, $cc_email, $template_id,$email_subject, $extrapdf = null) {
$this->checkToken();
$sign_here = new \DocuSign\eSign\Model\SignHere([
'anchor_string' => '/sn1/', 'anchor_units' => 'pixels',
'anchor_y_offset' => '10', 'anchor_x_offset' => '20']);
//create roles for signers
$templateRole = new DocuSign\eSign\Model\TemplateRole();
$templateRole->setEmail($signer_email);
$templateRole->setName($signer_name);
$templateRole->setRoleName('Signer 1');
$templateRole->setTabs(new \DocuSign\eSign\Model\Tabs(['sign_here_tabs' => [$sign_here]]));
$templateRole2 = new DocuSign\eSign\Model\TemplateRole();
$templateRole2->setEmail($cc_email);
$templateRole2->setName($cc_name);
$templateRole2->setRoleName('Signer 2');
$templateRole2->setTabs(new \DocuSign\eSign\Model\Tabs(['sign_here_tabs' => [$sign_here]]));
//create envelope definition
$envelop_definition = new DocuSign\eSign\Model\EnvelopeDefinition();
//set template to be used on envelope
$envelop_definition->setTemplateId($template_id);
//set email subject on envelope
$envelop_definition->setEmailSubject($email_subject);
//apply template roles from above to envelope
$envelop_definition->setTemplateRoles(array($templateRole, $templateRole2));
//create new instance of envelope API
$envelopeApi = new DocuSign\eSign\Api\EnvelopesApi(self::$apiClient);
//go ahead and create the envelope at DocuSign
$results = $envelopeApi->createEnvelope(self::$accountID, $envelop_definition);
//get the created envelope Envelope ID
$envelopeId = $results['envelope_id'];
//create another envelope definition.
$envelop_definition = new DocuSign\eSign\Model\EnvelopeDefinition();
//see if we have an additional PDF to add to the envelope created above.
if ($extrapdf != null) {
//if so, base64 encode it.
$extrapdf64 = base64_encode($extrapdf);
//create a new document
$document = new DocuSign\eSign\Model\Document();
$document->setDocumentBase64($extrapdf64);
$document->setName("HomeownershipCounseling.pdf");
$document->setDocumentId("1");
$document->setFileExtension("PDF");
//attach document to envelope definition.
$envelop_definition->setDocuments([$document]);
//update the envelope definition to sent to get DocuSign to actually send the envelope.
$envelop_definition->setStatus('sent');
//apply changes to the original envelope above.
$results = $envelopeApi->update(self::$accountID, $envelopeId, $envelop_definition);
}
return $results;
}
Конверт отправляет, но отправляет только статический документ, который был в шаблоне. Мы ожидаем, что статический документ в шаблоне и динамически сгенерированный PDF-файл будут находиться в конверте DocuSign.
Спасибо!