首页 > 解决方案 > 发送带有设置签名顺序的嵌入式签名电子邮件

问题描述

所以基本上我需要使用嵌入式签名功能来获取 URL 并嵌入到我的应用程序中,然后我的客户可以从我这边签署文档。除此之外,在我的客户在文件上签字后,他还需要让他的债务人在同一个文件上签字。所以在 DocuSign UI 上,我发现我可以设置一个签名顺序,这意味着第二个收件人在第一个收件人签名后立即收到电子邮件(完全符合我的要求)。 UI 上的设置 但是,在第一个签名者签名后,第二个收件人无法收到电子邮件,即使在 UI 上显示已发送。

public Envelope embeddedSigning(Long debtorId, String signerEmail, String signerName, String templateId) throws ApiException, IOException {
    // create an envelop
    EnvelopeDefinition envelope = makeEnvelope(debtorId, signerEmail, signerName, templateId);

    ApiClient apiClient = baseRestApiClient();
    apiClient.addDefaultHeader("Authorization", "Bearer " + getToken());
    EnvelopesApi envelopesApi = new EnvelopesApi(apiClient);
    EnvelopeSummary summary = envelopesApi.createEnvelope(accountId, envelope);
    RecipientViewRequest viewRequest = makeRecipientViewRequest(debtorId, signerEmail, signerName);
    ViewUrl viewUrl = envelopesApi.createRecipientView(accountId, summary.getEnvelopeId(), viewRequest);

    // @formatter:off
    return Envelope.builder()
        .envelopId(summary.getEnvelopeId())
        .redirectUrl(viewUrl.getUrl()).build();
    // @formatter:on
  }
private EnvelopeDefinition makeEnvelope(Long debtorId, String signerEmail, String signerName, String templateId) throws IOException {
    EnvelopeDefinition envelopeDefinition = new EnvelopeDefinition();
    envelopeDefinition.setEmailSubject("Please sign this document");
    envelopeDefinition.setTemplateId(templateId);

    TemplateRole signer = new TemplateRole();
    signer.setEmail(signerEmail);
    signer.setName(signerName);
    signer.clientUserId(String.valueOf(debtorId));
    signer.setRoleName("signer0");
    signer.setRoutingOrder("1");

    TemplateRole signer1 = new TemplateRole();
    signer1.setEmail("xxx");
    signer1.setName("xxx");
    signer1.clientUserId(String.valueOf(xxx));
    signer1.setRoleName("signer1");
    signer1.setRoutingOrder("2");

    envelopeDefinition.setTemplateRoles(Arrays.asList(signer, signer1));
    envelopeDefinition.setStatus("sent");
    return envelopeDefinition;
  }

标签: javadocusignapi

解决方案


您正在设置signer1.clientUserId(String.valueOf(xxx));这意味着您正在使签名者成为嵌入式签名者。默认情况下,DocuSign 不会向嵌入式签名者发送电子邮件。通过将签名者设为嵌入式签名者,您是在告诉 DocuSign,调用 App 将负责决定何时为该签名者主持签名仪式,因此 DocuSign 不会发送电子邮件,因为他们不会从电子邮件中进行签名,而是您的当签名者在您的应用程序上时将生成签名 URL 的应用程序。因此,如果您删除signer1.clientUserId(String.valueOf(xxx));代码,您将看到 signer1 将收到来自 DocuSign 的电子邮件。

Docs有更多关于嵌入式签名的详细信息。


推荐阅读