DocuSign API: Signing issues with sending multiple documents in the same envelope(DocuSign API:在同一信封中发送多个文档的签名问题)
问题描述
使用C#DocuSign API SDK 4.5.2
我将3份文件放在同一个信封中发送以供签名。每个文档将使用相同的服务器模板(它只是使用锚标记将签名元素放置在文档上)。我可以发送信封,然后从DocuSign收到电子邮件,以查看/签署文档。
我遇到的问题是,当我去签名时,我必须对每个文档签名3次--总共9次--然后我才能单击Finish按钮。每个文档上只有一个地方可以签名,但我必须单击三次签名按钮才能接受它。如果我有两个收件人,他们每个人的情况都是一样的。如果我将代码更改为仅发送1个文档,则它工作正常,因此很明显信封请求中没有正确生成某些内容。
我还尝试为每个收件人分配不同的ID号,即使只有2个角色和2个不同的名称/电子邮件地址。
就在我调用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"
}
这是我正在使用的一个文档。另外两个是相似的--不同的文本,但使用相同的锚标记。
我还尝试用我在测试中成功使用的另一个文档替换Document 1--它完全不同,但仍然使用相同的锚标记。我得到了相同的结果--每个签名都必须签名3次。
有人看到我做错了什么吗?如果您需要更多信息,请让我知道。
谢谢, 兰迪
更新:按照Inbar和Larry的建议,我联系了DocuSign支持,并将";锚定人员范围设置从";信封";更改为";文档";。不幸的是,这让事情变得更糟。我仍然需要多次单击签名元素才能签名,但只有第一个文档可以签名。其他文档没有附加任何签名元素。
更新#2:我想知道我使用模板的方式是否会令人困惑并导致这些问题。我可能应该解释得更清楚些。我正在使用的服务器模板有一个虚拟的Word文档,该文档只包含一组用于签名和日期的公共锚标记。我将其作为模板上传,并将签名和日期UI元素分配给锚标记。但是,当我从应用程序发送请求时,我使用的是我在运行时选择/生成的不同文档。该文档替换了模板中的虚拟Word文档,但具有相同的锚标记,因此所有签名和日期元素都会在实际文档中找到它们的位置。这在仅发送1个文档时非常有效,但我无法为多个文档工作。
更新#3:要求--我们正在向我们的网站(ASP.NET、WinForms)添加数字签名功能。我们已经有了一个页面,Advisor可以在其中打印出用于物理签名的文档,或者使用DocuSign启动数字签名流程。我们的所有文档都来自MS Report Server,因为它们需要包含我们数据库中的客户数据。我们目前不发送任何静态文档。在页面后面的代码中,我从报表服务器获取PDF字节,并将其(作为文档)添加到要发送到DocuSign的复合模板中。它还包含对Word文档(如下所示)的My Account中的服务器模板的引用,该文档包含要覆盖在报表服务器文档上的锚标记和签名元素(在更新#2中提到)。实际情况是,报表服务器文档替换了Word模板的文本(如表单背景),并且因为我使用与锚标记相同的文本,所以Word模板上的签名元素在报表服务器文档上找到它们的匹配项,并移动到文档上它们的位置。我最后包括1个或多个客户的姓名/电子邮件地址,通常还有2个其他所需的签名者(顾问和经理)。然后发送给DocuSign(SDK接口)开始签名过程。使用单个文档,这很好地工作。我们正在准备何时我们将需要发送一个以上的文件给客户,我们希望在一个单一的请求。如果您需要更多信息,请让我知道。
推荐答案
DocuSign客服帮我联系了一位非常耐心和乐于助人的开发人员支持代表。我解释了我试图做的事情,他提出了一个很容易集成到我现有代码库中的解决方案。
要让它工作,您需要2块拼图。上面提到了第一项:您必须将帐户中的Anchor Population Scope值设置为&Quot;Document&Quot;。此操作必须由DocuSign客户服务代表完成,因为用户无法访问该设置。
第二项是导致所有签名标记都堆叠在第一个文档上的原因。在您的复合模板中,内部模板必须具有";1";序列号,而服务器模板必须使用";2";序列号。一旦这两个项目都就位,我就可以向单个信封中的多个签名者发送多个文档,每个文档都使用相同的服务器模板(以定义AutoPlace标记和角色)。
以下是适用于我的示例JSON:
{
"compositeTemplates": [
{
"compositeTemplateId": "1",
"inlineTemplates": [
{
"documents": [
{
"documentBase64": "<PDF Bytes>",
"documentId": "1",
"fileExtension": "PDF",
"name": "MultiDocument1"
}
],
"recipients": {
"signers": [
{
"email": "client@email.com",
"name": "Client Name",
"recipientId": "1",
"roleName": "Signer1"
},
{
"email": "advisor@email.com",
"name": "Advisor Name",
"recipientId": "2",
"roleName": "Advisor"
}
]
},
"sequence": "1"
}
],
"serverTemplates": [
{
"sequence": "2",
"templateId": "1234xxxx-xxxx-xxxx-xxxx-xxxxxxxx5678"
}
]
},
{
"compositeTemplateId": "2",
"inlineTemplates": [
{
"documents": [
{
"documentBase64": "<PDF Bytes>",
"documentId": "2",
"fileExtension": "PDF",
"name": "MultiDocument2"
}
],
"recipients": {
"signers": [
{
"email": "client@email.com",
"name": "Client Name",
"recipientId": "1",
"roleName": "Signer1"
},
{
"email": "advisor@email.com",
"name": "Advisor Name",
"recipientId": "2",
"roleName": "Advisor"
}
]
},
"sequence": "1"
}
],
"serverTemplates": [
{
"sequence": "2",
"templateId": "1234xxxx-xxxx-xxxx-xxxx-xxxxxxxx5678"
}
]
},
{
"compositeTemplateId": "3",
"inlineTemplates": [
{
"documents": [
{
"documentBase64": "<PDF Bytes>",
"documentId": "3",
"fileExtension": "PDF",
"name": "MultiDocument3"
}
],
"recipients": {
"signers": [
{
"email": "client@email.com",
"name": "Client Name",
"recipientId": "1",
"roleName": "Signer1"
},
{
"email": "advisor@email.com",
"name": "Advisor Name",
"recipientId": "2",
"roleName": "Advisor"
}
]
},
"sequence": "1"
}
],
"serverTemplates": [
{
"sequence": "2",
"templateId": "1234xxxx-xxxx-xxxx-xxxx-xxxxxxxx5678"
}
]
}
],
"emailSubject": "Multiple Documents for Signatures",
"status": "Sent"
}
如果您有任何问题,请告诉我。感谢拉里·K和英巴尔·加齐特的助攻!
这篇关于DocuSign API:在同一信封中发送多个文档的签名问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:DocuSign API:在同一信封中发送多个文档的签名问题
基础教程推荐
- 将 Office 安装到 Windows 容器 (servercore:ltsc2019) 失败,错误代码为 17002 2022-01-01
- 如何激活MC67中的红灯 2022-01-01
- rabbitmq 的 REST API 2022-01-01
- 有没有办法忽略 2GB 文件上传的 maxRequestLength 限制? 2022-01-01
- SSE 浮点算术是否可重现? 2022-01-01
- MS Visual Studio .NET 的替代品 2022-01-01
- c# Math.Sqrt 实现 2022-01-01
- 为什么Flurl.Http DownloadFileAsync/Http客户端GetAsync需要 2022-09-30
- 将 XML 转换为通用列表 2022-01-01
- 如何在 IDE 中获取 Xamarin Studio C# 输出? 2022-01-01