首页 > 解决方案 > DocuSign 电子签名。要求用户多次签署文件

问题描述

我们用 java 调用 DocuSign eSignature APi。在我们的一个用例中,我们需要将多个文档发送给一个签名者。

对于信封中的每个文档,我们正在创建一个 SignHere 对象并将其与 setDocumentId 方法相关联。我们需要auto-place,所以我们使用 setAnchorString 方法( setAnchorString("/sn1/") )来定位用户的签名:信封的每个文档都有一个 "/sn1/" 字符串,因此我们正在创建一个SignHere 为每个文件。

为此,DocuSign 为每个文档请求用户签名 3 次。似乎每个 SignHere 对象都应用于信封的所有文档。另一方面,如果我们改用固定定位,DocuSign 会为文档请求用户签名一次(这是我们所期望的)。

我们如何使用锚标记使 DocuSign 为每个文档仅请求用户签名一次?

提前致谢

EnvelopeDefinition envDef = new EnvelopeDefinition();
Recipients recipients = new Recipients();
List<Document> documents = new ArrayList<Document>();
envDef.emailSubject("DocuSign email");
envDef.setRecipients(recipients);
envDef.setDocuments(documents);

Document document1 = new Document();
document1.setDocumentBase64(Base64.encodeToString(getFile("doc1.pdf");
document1.setName("doc1.pdf");
document1.setDocumentId("1");

Document document2 = new Document();
document2.setDocumentBase64(Base64.encodeToString(getFile("doc2.pdf");
document2.setName("doc2.pdf");
document2.setDocumentId("2");

Document document3 = new Document();
document3.setDocumentBase64(Base64.encodeToString(getFile("doc3.pdf");
document3.setName("doc2.pdf");
document3.setDocumentId("3");

documents.add(document1);
documents.add(document2);
documents.add(document3);

Signer signer = new Signer();
signer.setEmail("xxxx@xxx.xxx");
signer.setName("Test User");
signer.setRecipientId("1");
recipients.addSignersItem(signer);

List<SignHere> signHereTabs = new ArrayList<SignHere>();
Tabs tabs = new Tabs();
tabs.setSignHereTabs(signHereTabs);
signer.setTabs(tabs);

SignHere signHere1 = new SignHere();
signHere1.setDocumentId("1");
signHere1.setRecipientId("1");
signHere1.setScaleValue("1");
signHere1.setAnchorUnits("pixels");
signHere1.setAnchorString("/sn1/");
signHere1.setAnchorYOffset("20");
signHere1.setAnchorXOffset("0");
signHereTabs.add(signHere1);

SignHere signHere2 = new SignHere();
signHere2.setDocumentId("2");
signHere2.setRecipientId("1");
signHere2.setScaleValue("1");
signHere2.setAnchorUnits("pixels");
signHere2.setAnchorString("/sn1/");
signHere2.setAnchorYOffset("20");
signHere2.setAnchorXOffset("0");
signHereTabs.add(signHere2);

SignHere signHere3 = new SignHere();
signHere3.setDocumentId("3");
signHere3.setRecipientId("1");
signHere3.setScaleValue("1");
signHere3.setAnchorUnits("pixels");
signHere3.setAnchorString("/sn1/");
signHere3.setAnchorYOffset("20");
signHere3.setAnchorXOffset("0");
signHereTabs.add(signHere3);

envDef.setStatus("sent");

标签: javadocusignapienvelopee-signature

解决方案


推荐阅读