如何使用docusign休息API将模板应用于文档
-
21-12-2019 - |
题
我目前正在使用docusign休息api,我想知道有人是否有一个例子,我如何在一个信封中添加文档和模板。我可以访问我需要的模板ID,我已经使用了复合模板来创建一个带有相应模板的多个文档的信封。我只是使用模板ID这样做。现在我正试图弄清楚如何将文档添加到复合模板。如果文档包含模板(如果它确实有一个),则可以访问模板ID),它应该将模板应用于该文档。
我可以通过REST API将模板应用于文档吗?如果是这样,有人有一个例子吗?
解决方案
以下是一些示例,其示出了如何利用复合模板将信息与通过API请求本身指定的信息组合。
示例#1:
以下示例请求创建一个信封,其中模板用于定义信封的标签和收件人角色,但文件和收件人信息由API请求本身提供。
POST https://demo.docusign.net/restapi/v2/accounts/ACCOUNTNBR/envelopes HTTP/1.1
X-DocuSign-Authentication: {"Username":"USERNAME","Password":"PASSWORD","IntegratorKey":"INTEGRATORKEY"}
Content-Type: multipart/form-data; boundary=MY_BOUNDARY
Accept: application/json
Host: demo.docusign.net
Content-Length: 162100
--MY_BOUNDARY
Content-Type: application/json
Content-Disposition: form-data
{
"emailBlurb":"Test Email Body",
"emailSubject": "Test Email Subject",
"status" : "sent",
"compositeTemplates": [
{
"serverTemplates": [
{
"sequence" : 1,
"templateId": "TEMPLATE_ID"
}],
"inlineTemplates": [
{
"sequence" : 2,
"recipients": {
"signers" : [{
"email": "bettysemail@outlook.com",
"name": "Betty Adamson",
"recipientId": "1",
"roleName": "RoleOne"
}]
}
}],
"document": {
"documentId": 1,
"name": "test1.pdf"
}
}]
}
--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="TestDocAPI.pdf"; documentid="1"
<document bytes removed>
--MY_BOUNDARY--
.
如上所示,通过API请求提供文档,要求您提交多部分请求 - 第一部分代表请求的完整JSON,每个该请求的后续部分表示JSON中引用的单个文档的内容。如果您的JSON引用多个文档,则您的请求将包含每个文档的其他/单独的 部分 。
综合模板是强大的,因为它们在与运行时通过API请求本身提供的信息(文档,收件人)将信息组合到与运行时提供的信息相结合的灵活性。上面的例子非常简单(一个模板,一个文档,一个收件人) - 但是可以轻松扩展,因为您想要组合多个模板/文档/收件人的情况。
(REST API指南的P26-27上的示例请求显示发送多部分请求时所需的基本格式: http://www.docusign.com/sites/default/files/rest_api_guide_v2.pdf
因为我们通过API请求指定了两个文档,请求总共有三个部分:1)JSON,2)内容的第一个文档,3)内容的第二个文档。
POST https://demo.docusign.net/restapi/v2/accounts/ACCOUNTNBR/envelopes HTTP/1.1
X-DocuSign-Authentication: {"Username":"USERNAME","Password":"PASSWORD","IntegratorKey":"INTEGRATORKEY"}
Content-Type: multipart/form-data; boundary=MY_BOUNDARY
Accept: application/json
Host: demo.docusign.net
Content-Length: 162100
--MY_BOUNDARY
Content-Type: application/json
Content-Disposition: form-data
{
"status" : "sent",
"emailSubject" : "Test Envelope Subject",
"emailBlurb" : "Test Envelope Blurb",
"compositeTemplates": [
{
"inlineTemplates": [
{
"sequence" : 1,
"recipients": {
"signers" : [{
"email": "abbysemail@outlook.com",
"name": "Abby Abbott",
"recipientId": "1"
}]
}
}],
"document": {
"documentId": 1,
"name": "CustomerAgreement",
"fileExtension": "pdf"
}
},
{
"inlineTemplates": [
{
"sequence" : 2,
"recipients": {
"signers" : [{
"email": "abbysemail@outlook.com",
"name": "Abby Abbott",
"recipientId": "1"
}]
}
}],
"document": {
"documentId": 2,
"name": "Invoice",
"fileExtension": "pdf"
}
},
{
"serverTemplates": [
{
"sequence" : 1,
"templateId": "TEMPLATE_ID"
}],
"inlineTemplates": [
{
"sequence" : 2,
"recipients": {
"signers" : [{
"email": "abbysemail@outlook.com",
"name": "Abby Abbott",
"recipientId": "1",
"roleName": "Initiator",
"routingOrder":"1"
}
]
}
}]
}]
}
--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="CustomerAgreement.pdf"; documentid="1"
<document bytes removed>
--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="Invoice.pdf"; documentid="2"
<document bytes removed>
--MY_BOUNDARY--
. 不隶属于 StackOverflow