【发布时间】:2020-12-19 21:25:31
【问题描述】:
使用 C#、DocuSign API SDK 4.5.2。
我要在同一个信封中发送 3 个签名文件。每个文档都将使用相同的服务器模板(它只是使用锚标记将签名元素放在文档上)。我可以寄出信封,然后我会从 DocuSign 收到电子邮件以查看/签署文件。
我遇到的问题是,当我去签名时,我必须在每个文档上签名 3 次——总共 9 次——然后我才被允许点击“完成”按钮。每个文件只有一个签名的地方,但我必须点击签名按钮 3 次才能被接受。如果我有 2 个收件人,那么每个收件人都是一样的。如果我将代码更改为仅发送 1 个文档,它可以正常工作,因此很明显在信封请求中没有正确生成某些内容。
即使只有 2 个角色和 2 个不同的姓名/电子邮件地址,我也尝试为每个收件人分配不同的 ID 号。
就在我调用 API 以实际发送文档之前,我捕获 JSON 用于调试目的:
{
"compositeTemplates": [
{
"compositeTemplateId": "1",
"document": {
"documentBase64": "---Document 1 Bytes---",
"documentId": "1",
"fileExtension": "pdf",
"name": "MultiDocument1"
},
"inlineTemplates": [
{
"recipients": {
"signers": [
{
"email": "client@gmail.com",
"name": "Client Name",
"recipientId": "1",
"roleName": "Signer1"
},
{
"email": "advisor@gmail.com",
"name": "Advisor Name",
"recipientId": "2",
"roleName": "Advisor"
}
]
},
"sequence": "2"
}
],
"serverTemplates": [
{
"sequence": "1",
"templateId": "99321CB1-A3E8-44A0-BDF4-D4F20069BC7B"
}
]
},
{
"compositeTemplateId": "2",
"document": {
"documentBase64": "---Document 2 Bytes---",
"documentId": "2",
"fileExtension": "pdf",
"name": "MultiDocument2"
},
"inlineTemplates": [
{
"recipients": {
"signers": [
{
"email": "client@gmail.com",
"name": "Client Name",
"recipientId": "1",
"roleName": "Signer1"
},
{
"email": "advisor@gmail.com",
"name": "Advisor Name",
"recipientId": "2",
"roleName": "Advisor"
}
]
},
"sequence": "2"
}
],
"serverTemplates": [
{
"sequence": "1",
"templateId": "99321CB1-A3E8-44A0-BDF4-D4F20069BC7B"
}
]
},
{
"compositeTemplateId": "3",
"document": {
"documentBase64": "---Document 3 Bytes---",
"documentId": "3",
"fileExtension": "pdf",
"name": "MultiDocument3"
},
"inlineTemplates": [
{
"recipients": {
"signers": [
{
"email": "client@gmail.com",
"name": "Client Name",
"recipientId": "1",
"roleName": "Signer1"
},
{
"email": "advisor@gmail.com",
"name": "Advisor Name",
"recipientId": "2",
"roleName": "Advisor"
}
]
},
"sequence": "2"
}
],
"serverTemplates": [
{
"sequence": "1",
"templateId": "99321CB1-A3E8-44A0-BDF4-D4F20069BC7B"
}
]
}
],
"emailSubject": "Multiple Documents for Signature",
"status": "Sent"
}
这是我正在使用的文档之一。其他两个类似——不同的文本,但使用相同的锚标记。
我还尝试替换另一个我在测试文档 1 时成功使用的文档——它完全不同,但仍然使用相同的锚标记。我得到了相同的结果——每个签名都要签名 3 次。
谁能看到我做错了什么?如果您需要更多信息,请告诉我。
谢谢, 兰迪
更新:按照 Inbar 和 Larry 的建议,我联系了 DocuSign 支持,并将“锚点人口范围”设置从“信封”更改为“文档”。不幸的是,这让事情变得更糟。我仍然需要多次单击签名元素才能签名,但只能签名第一个文档。其他文件没有附加任何签名元素。
更新 #2: 我想知道我使用模板的方式是否会令人困惑并导致这些问题。我可能应该更清楚地解释自己。我正在使用的服务器模板有一个“虚拟”Word 文档,其中只包含一组用于签名和日期的通用锚标记。我将它作为模板上传,并将签名和日期 UI 元素分配给锚标记。但是当我从我的应用程序发送请求时,我使用的是我在运行时选择/生成的不同文档。该文档替换了模板中的虚拟 Word 文档,但具有相同的锚标记,因此所有签名和日期元素都可以在真实文档中找到它们的位置。这在仅发送 1 个文档时效果很好,但我无法让事情超过一个。
更新 #3: 要求 -- 我们正在向我们的网站(ASP.NET、WinForms)添加数字签名功能。我们已经有一个页面,顾问可以在该页面上打印出物理签名文档或使用 DocuSign 启动数字签名过程。我们所有的文档都来自 MS Report Server,因为它们需要包含来自我们数据库的客户数据。我们目前不发送任何静态文件。在页面后面的代码中,我从 Report Server 获取 PDF 字节并将其(作为文档)添加到要发送到 DocuSign 的复合模板中。它还包含对我的 Word 文档帐户(见下文)的服务器模板的引用,该文档包含要覆盖在报表服务器文档上的锚标记和签名元素(在更新 #2 中提到)。发生的情况是 Report Server 文档替换了 Word 模板的文本(如表单背景),并且因为我使用与锚标记相同的文本,Word 模板上的签名元素在 Report Server 文档中找到它们的匹配项并移动到他们在文件上的位置。我最后包括 1 个或多个客户的姓名/电子邮件地址,通常还有 2 个其他必需的签名者(顾问和经理)。然后将其发送到 DocuSign (SDK API) 以启动签名过程。使用单个文档,这运行良好。我们正在准备何时需要向客户发送超过 1 个文档,并且我们希望在单个请求中执行此操作。如果您需要更多信息,请告诉我。
【问题讨论】:
-
我们没有文档,但是每个文档有可能在 3 个地方都有锚字符串吗?我假设您希望每个文档只有一个标签,对吗?并且使用锚字符串它应该只放置一个选项卡,对吧?
-
我编辑了原始帖子以添加其中一个文档的图片。原始文档为 Word 格式,转换为 PDF。我会检查 Word 或 PDF 文件中是否有“额外的”锚标记。
-
我刚刚尝试为信封中的第一个文档使用完全不同的文档。它是从 MS Report Server 生成的 PDF,但具有相同的锚标记。我已经成功使用过这个 PDF 很多次,但仅限于单个文档信封。我遇到了同样的签名问题。
-
请他们更改您帐户中锚标记的默认范围。
-
我建议通过 DocuSign dot com 的上线联系开发人员支持。
标签: c# docusignapi docusigncompositetmplts