DocuSign API——为每个接收者在不同的文档中填充相同的选项卡名称
本文关键字:填充 选项 文档 API 接收者 DocuSign | 更新日期: 2023-09-27 18:16:30
我对DocuSign的世界相当陌生,我正在尝试为多个收件人填充标签,这些收件人在DocuSign的特定服务器模板中设置了不同的文档。这些文档中的选项卡名称是相同的。
下面的代码将为收件人1填充文档中的选项卡,没有任何问题,这是有意义的,因为我将选项卡的收件人值设置为1。但是,我不知道如何使用这些选项卡填充发送给收件人2和3的文档。我尝试在数组中循环使用收件人,并以这种方式设置收件人,但这只是使文档中的制表符为空。
Type MyClassType = MyClass.GetType();
//add all the neccessary instances of the DocuSignWeb.TAB object into a dictionary
//giving each one a unique name based on the property it represents
var tabNames = new Dictionary<string, DocuSignWeb.Tab>();
foreach (PropertyInfo propertyInfoTabs in MyClassType.GetProperties())
{
string tabName = propertyInfoTabs.Name;
tabNames.Add(tabName, new DocuSignWeb.Tab());
}
//dynamically populate each tab with the relevant data
//and add each one to a list.
List<DocuSignWeb.Tab> tabs = new List<DocuSignWeb.Tab>();
foreach (PropertyInfo propertyInfo in MyClassType .GetProperties())
{
DocuSignWeb.Tab t = tabNames[propertyInfo.Name];
t.TabLabel = propertyInfo.Name;
t.Value = Convert.ToString(propertyInfo.GetValue(MyClass, null));
//document info is defined in server template
t.RecipientID = "1";
t.TemplateLocked = true;
t.Type = TabTypeCode.Custom;
t.CustomTabLocked = true;
t.CustomTabDisableAutoSize = true;
t.CustomTabWidth = 20;
tabs.Add(t);
}
inlineTemplate.Envelope.Tabs = tabs.ToArray();
如果有人这样做了,可以帮助,我真的很感激。
DocuSign制表符总是与给定的接收者相关(而不是文档本身)。因此,例如,如果您有3个唯一的收件人,那么您至少必须在请求中指定3个完全独立的选项卡,即使这些选项卡具有相同的名称。每个选项卡都有一个唯一的recipientId
,表示它属于哪个收件人。
很难判断你发送的是什么类型的请求,因为你已经发布了代码,而不是代码生成的JSON体,如果你发布原始JSON会很有帮助。
在任何情况下,为了保持示例简短,如果您发送给两个唯一的收件人,您的请求将看起来像这样:
{
"recipients": {
"signers": [
{
"email": "sally@email.com",
"name": "Sally Doe",
"recipientId": 1,
"tabs": {
"textTabs": [
{
"tabLabel": "Data Field 1",
"value": "12345",
"xPosition": "100",
"yPosition": "100",
"documentId": "1",
"pageNumber": "1"
}
]
}
},
{
"email": "jon@email.com",
"name": "Jon Doe",
"recipientId": 2,
"tabs": {
"textTabs": [
{
"tabLabel": "Data Field 1",
"value": "12345",
"xPosition": "100",
"yPosition": "100",
"documentId": "1",
"pageNumber": "1"
}
]
}
}
]
}
}
正如您所看到的,这里定义了两个独立的制表符,每个制表符都有一个唯一的recipientId
,尽管它们具有我们设置的相同的名称和值。要调试,请查看代码发送的请求(注意:您可以通过您的帐户偏好启用请求日志,以便轻松查看您的请求),然后返回代码并确保它正在创建您期望的请求。