java - 发送带有设置签名顺序的嵌入式签名电子邮件
问题描述
所以基本上我需要使用嵌入式签名功能来获取 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;
}
解决方案
您正在设置signer1.clientUserId(String.valueOf(xxx));
这意味着您正在使签名者成为嵌入式签名者。默认情况下,DocuSign 不会向嵌入式签名者发送电子邮件。通过将签名者设为嵌入式签名者,您是在告诉 DocuSign,调用 App 将负责决定何时为该签名者主持签名仪式,因此 DocuSign 不会发送电子邮件,因为他们不会从电子邮件中进行签名,而是您的当签名者在您的应用程序上时将生成签名 URL 的应用程序。因此,如果您删除signer1.clientUserId(String.valueOf(xxx));
代码,您将看到 signer1 将收到来自 DocuSign 的电子邮件。
Docs有更多关于嵌入式签名的详细信息。
推荐阅读
- python - Seaborn Catplot:显示线图
- npm - 运行 npm 脚本时如何取消设置环境变量?
- macos - CURL 错误 (58) : SSL: Can't find the certificate "..." and its private key using PKCS#12 on MacOSX
- java - Android Studio - 从 URL FATAL EXCEPTION 获取 JSON
- java - LWJGL 演示 GLXGears 需要演示包
- javascript - 将 div 注入完美滚动而不更改滚动位置
- javascript - 盖茨比链接不尊重 activeClassName
- java - 为java类赋值,但不返回值
- python - 在同一项目的不同子目录中导入 python 模块和包
- python - Surface Matplotlib 上的曲线叠加