Docusign 以编程方式添加收件人

问题描述 投票:0回答:1

我正在开发一个系统,需要以编程方式添加信封收件人。

我在 Docusign 端创建了一个模板,然后使用该模板的 ID 将信封发送给每个收件人,如下所示

$templateRoles = [
    'signers' => []
];

foreach ($passengers as $passenger) {
    $templateRoles['signers'][] = [
        'email' => $passenger->email,
        'name' => $passenger->name,
        'role_name' => 'passenger',
        'recipientId' => $passenger->id
    ];
}

$envelopeDefinition = new \DocuSign\eSign\Model\EnvelopeDefinition([
    'email_subject' => 'Please sign the waiver',
    'template_id' => $templateId,
    'status' => 'created',
]);

try {
    $envelopesApi = new EnvelopesApi($apiClient);
    $envelopResults = $envelopesApi->createEnvelope($accountInfo[0]->getAccountId(), $envelopeDefinition);

    $TemplatesApi->createRecipients($accountInfo[0]->getAccountId(), $templateId, $templateRoles);

    $envelopeDefinition->setStatus('sent');
    $updateResponse = $envelopesApi->update($accountInfo[0]->getAccountId(), $envelopResults->getEnvelopeId(), $envelopeDefinition);

我可以看到 Docusign 模板视图中的收件人列表已正确更新,但电子邮件未发送出去。只有在我发出另一个发送请求后,信封才会被发送。

这是有意的行为吗?在我向他们发送信封之前,模板是否需要有预先填写的收件人列表?

php laravel docusignapi docusign-sdk
1个回答
0
投票

是的,这是预期的行为。

您不能“发送”模板,您不能请求在模板上签名,任何人都不能对模板进行签名或操作。

模板只是创建信封的一种方式。它对您有帮助,因为您可以一次又一次地创建类似类型的信封,而不必每次都指定 documentstabs。如果需要,还可以从模板修改收件人。

已经发送并等待签名的信封无法通过 API 直接修改,您需要先将其置于“正确”模式以启动更正过程。如果信封仍处于“草稿”模式 - 您仍然可以对其进行修改。

我建议(但不是必需的)您使用 composite template 方法(而不是您共享的代码),如果您以后的需求发生变化,它可以提供更大的灵活性。

© www.soinside.com 2019 - 2024. All rights reserved.