在Create Envelope API请求中使用“Composite Template”结构将允许您使用来自DocuSign模板的文档和运行时指定的文档的组合来创建Envelope, API请求,并为您提供对收件人的相当动态控制。有关在Create Envelope API请求中使用复合模板的更多信息,请搜索“Composite”的API指南(REST或SOAP)。
当您在创建信封请求中使用复合模板时,请求中的每个单独的复合模板对象必须提供完整信封所需的信息(即至少1个收件人和1个文档...或服务器模板定义文件和/或收件人)。然后DocuSign基本上将来自请求中所有复合模板对象的所有收件人和文档信息组合起来,形成信封。在下面的例子JSON请求的情况下,所得到的包络包含:
- 3收件人(经由API请求动态填充:1-阿比,2-鲍勃,3-查理)
- 3文件(通过API请求,经由API请求中指定的第二,经由的DocuSign模板中指定的第三)
POST https://demo.docusign.net/restapi/v2/accounts/YOUR_ACCOUNT_NUMBER/envelopes
X-DocuSign-Authentication: {"Username":"YOUR_USER_NAME","Password":"YOUR_PASSWORD","IntegratorKey":"YOUR_INTEGRATOR_KEY"}
Content-Type: multipart/form-data; boundary=MY_BOUNDARY
Accept: application/json
--MY_BOUNDARY
Content-Type: application/json
Content-Disposition: form-data
{
"status" : "sent",
"emailSubject" : "Test Envelope",
"compositeTemplates": [
{
"inlineTemplates": [
{
"sequence" : 1,
"recipients": {
"signers" : [{
"email": "[email protected]",
"name": "Abby Abbott",
"recipientId": "1"
}, {
"email": "[email protected]",
"name": "Bob Burns",
"recipientId": "2",
"routingOrder":"2"
},
{
"email": "[email protected]",
"name": "Charlie Carlson",
"recipientId": "3",
"routingOrder":"3"
}]
}
}],
"document": {
"documentId": 1,
"name": "Customer Agreement",
"fileExtension": "pdf"
}
},
{
"inlineTemplates": [
{
"sequence" : 2,
"recipients": {
"signers" : [{
"email": "[email protected]",
"name": "Abby Abbott",
"recipientId": "1"
}]
}
}],
"document": {
"documentId": 2,
"name": "Test File",
"fileExtension": "pdf"
}
},
{
"serverTemplates": [
{
"sequence" : 1,
"templateId": "YOUR_TEMPLATE_ID"
}],
"inlineTemplates": [
{
"sequence" : 2,
"recipients": {
"signers" : [{
"email": "[email protected]",
"name": "Abby Abbott",
"recipientId": "1",
"roleName": "Customer",
"routingOrder":"1"
}
]
}
}]
}
]}
--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="CustomerAgreement.pdf"; documentid="1"
**pdf bytes removed for brevity**
--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="TestFile.pdf"; documentid="2"
**pdf bytes removed for brevity**
--MY_BOUNDARY--
用C第一指定omposite模板有点棘手(并且没有很好的记录),所以它可能需要一些试验和错误来完成你需要的东西 - 但希望这个例子揭示了如何使用组合模板来创建一个信封来自DocuSign模板和通过API请求动态指定的文档的组合。
如果您是收件人,并且他们的标签每次都是动态的,那么您目前的填充信封的工作流程是什么?我认为你目前没有使用模板? – Ergin
正确,我不使用模板。我们用特殊的字符串生成我们的pdf,这些字符串表明签名或缩写的位置。然后,业务逻辑确定需要多少收件人,添加与pdf上字符串匹配的标签,然后将数据和pdf发送到Docusign API。我从来没有通过API使用模板。 – oscarmorasu
那么你绝对可以将文档保存在没有配置任何标签的模板中。我不确定的是,如果您的需求的动态部分有一个完整的解决方案。就像,如果你有X个可能的配置,在一个给定的配置中你有一个已知数量的收件人和角色,那么你可以为每个配置创建一个模板,并根据业务逻辑使用适当的配置。但如果它总是一个真正的动态数量的收件人和角色,那么我不确定是否有解决方案,也许...... – Ergin