每种信封类型都有自己的电子邮件主题/正文,对于该信封类型是静态的。以下是一些预定信封类型的示例:
这些信封将包含不同数量的文件,每个文件都是唯一的。我试图在没有文档的情况下创建模板,但似乎不允许这样做。
我希望能够保存这些信封类型的电子邮件正文和主题,这样当我通过DocuSign API发送信封时,我不必直接指定这些字段。我希望避免将主题/正文存储在代码或配置文件中。最好是,我希望非技术人员能够通过DocuSign界面更改主题/正文。
我最终做了什么:
根据Kim Brandl的建议,我编写了以下代码,该代码按预期工作。几点说明:
收件人,签名者,文档等遵循与标准EnvelopeDefinition相同的模式,但数据放在InlineTemplate下。
string docBase64 = Convert.ToBase64String(file.Stream.ReadAsBytes());
EnvelopeDefinition envDef = New EnvelopeDefinition();
envDef.Status = "created";
// The first sequence that appears will be the first document that is applied.
// If you want the uploaded documents to appear instead of the server template,
// make the server template a higher number.
envDef.CompositeTemplates = new List<CompositeTemplate>
{
new CompositeTemplate()
{
ServerTemplates = new List<ServerTemplate>()
{
new ServerTemplate("2", templateId)
},
InlineTemplates = new List<InlineTemplate>()
{
new InlineTemplate()
{
Sequence = "1",
Recipients = new Recipients()
{
Signers = new List<Signer>()
{
new Signer()
{
Email = request.Recipients[0].UserEmail,
Name = request.Recipients[0].UserName,
RoleName = request.Recipients[0].RoleName,
RecipientId = (1).ToString()
}
}
},
Documents = new List<Document>()
{
new Document()
{
DocumentBase64 = docBase64,
DocumentId = "3",
Name = "ConsentFake.pdf",
IncludeInDownload = "true"
},
new Document
{
DocumentBase64 = docBase64,
DocumentId = "9",
Name = "ConsentFake2.pdf",
IncludeInDownload = "true"
}
}
}
}
}
};
摘要:这使我能够利用DocuSign模板的电子邮件主题/正文,而无需使用特定的模板文档。
答案 0 :(得分:1)
您可以通过执行以下操作为您描述的方案实施解决方案:
使用DocuSign网页界面create a Template查看每种“信封类型”,并在您创建的每个模板中指定电子邮件主题和正文。您还需要将文档上载到模板(DocuSign要求您在保存模板之前至少添加一个文档) - 但您可以添加任何占位符文档(例如,包含单词占位符的.txt文件)文件的)。您添加到模板的文档实际上不会在您从模板创建的信封中使用 - 因为您将使用API在运行时指定文档。 (非技术人员将能够在将来的任何时候使用DocuSign Web UI修改/更新每个模板中的电子邮件信息。)
通过API发送信封时,请使用“创建信封”API请求中的compositeTemplates
结构。通过使用compositeTemplates
结构,您可以指定要使用的serverTemplate
(将拉入您在该模板中定义的电子邮件主题和电子邮件正文),使用inlineTemplate
对象指定收件人和标签信息,并使用指定文档信息document
对象。
(Stack Overflow上有很多关于如何在创建信封请求中使用compositeTemplates
的信息。如果您无法正确/正常地使用该请求结构,请发布一个单独的问题。)