在DocaUnign中使用复合模板添加文档到信封
-
27-12-2019 - |
题
我正在尝试使用docuSign API将文档添加到综合模板,并且文档不会加载到信封中我期望的方式。我目前有我的代码使用测试json,我在其中添加文档而不使用综合模板,它完美地工作。然而,似乎综合模板略可通过文档跳过。这是我如何创建它:
{
"emailSubject": "Test Email Subject_FA",
"emailBlurb": "Test Email Body_FA",
"status": "created",
"compositeTemplates": [
{
"inlineTemplates": [
{
"sequence": "1",
"recipients": {
"signers": [
{
"email": "test1@yahoo.com",
"name": "test1",
"recipientId": "1",
"routingOrder": "1",
"roleName": "Client 1"
},
{
"email": "test2@gmail.com",
"name": "test2",
"recipientId": "2",
"routingOrder": "2",
"roleName": "Client 2"
}
],
"documents": [
{
"transformPdfFields": "false",
"name": "test0.pdf",
"documentId": "1"
}
]
}
}
]
},
{
"inlineTemplates": [
{
"sequence": "1",
"recipients": {
"signers": [
{
"email": "test1@yahoo.com",
"name": "test1",
"recipientId": "1",
"routingOrder": "1",
"roleName": "Client 1"
},
{
"email": "test2@gmail.com",
"name": "test2",
"recipientId": "2",
"routingOrder": "2",
"roleName": "Client 2"
}
],
"documents": [
{
"transformPdfFields": "false",
"name": "test1.pdf",
"documentId": "2"
}
]
}
}
]
}
]
.
}
这是一点测试我这样做,所以我理解这是不切实际的。但是我想要理解的是为什么这不会向信封添加文件。下面的请求做到了我想做的事情。
{
"emailSubject": "Test Email Subject_FA",
"emailBlurb": "Test Email Body_FA",
"status": "created",
"documents": [
{
"name": "test0.pdf",
"documentId": "1"
},
{
"name": "test1.pdf",
"documentId": "2"
},
{
"name": "test2.pdf",
"documentId": "3"
}
],
"recipients": {
"signers": [
{
"email": "test1@yahoo.com",
"name": "test1",
"recipientId": "1",
"clientUserId": "1",
"signerName": "test1",
"defaultRecipient": "true",
"defaultRecipientSpecified": "true",
"routingOrder": "1"
},
{
"email": "test2@gmail.com",
"name": "test2",
"recipientId": "2",
"clientUserId": "2",
"signerName": "test2",
"routingOrder": "2"
}
]
}
.
}
有人知道为什么我的复合模板的信封不会加载文件吗?
提前谢谢!
更新:
这是我对复合模板的请求:
--MY_BOUNDARY
Content-Type: application/json
Content-Disposition: form-data
{
"emailSubject": "Test Email Subject_FA",
"emailBlurb": "Test Email Body_FA",
"status" : "created",
"compositeTemplates": [
{
"inlineTemplates": [
{
"sequence": "1",
"recipients":
{
"signers": [
{
"email": "test1@yahoo.com",
"name": "test1",
"recipientId": "1"
},
{
"email": "test2@gmail.com",
"name": "test2",
"recipientId": "2"
}
],
"document":
{
"name": "test0",
"documentId": "1",
"fileExtension": "pdf"
}
}
}
]
},
{
"inlineTemplates": [
{
"sequence": "2",
"recipients": {
"signers": [
{
"email": "test1@yahoo.com",
"name": "test1",
"recipientId": "1"
},
{
"email": "test3@yahoo.com",
"name": "test3",
"recipientId": "2"
}
],
"document":
{
"name": "test1",
"documentId": "2",
"fileExtension": "pdf"
}
}
}
]
}
]
}
--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="test0.pdf"; documentid="1"
--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="test1.pdf"; documentid="2"
--MY_BOUNDARY--
.
我已经调整了我的文档以使用名称和文件遥感,因此我遗漏了文件名上的.pdf扩展名,因为它似乎是实现此目的的另一种方法。我两种方式都尝试过,没有运气。
解决方案
在Request JSON中,您已发布,您将“文档”(复数)作为文档对象的集合/数组 - 不正确。 compositeptate eplates 数组中的每个复合模板项都只能包含单个文档。这意味着用于在复合模板中指定文档的JSON语法如下:
"document": {
"documentId": 1,
"name": "test1.pdf"
}
.
i.e.,文档是奇异的,它是一个对象(不是对象数组)。 “复合模板”json请求的完整请求语法显示在您的先前问题的答案中:
如何应用模板使用docusign rest api 的文档。
重新“更新”对您的问题:
在您在“更新”下发布的请求的JSON部分中,我注意到您已包含文件 收件人对象(包含)在中inlineTemplates 对象中) - 这不是文档的正确位置。将JSON结构与以下(正确)结构密切相关,并相应地调整您的请求。基本上,文档必须是 inlineTemplates - 不位于中,inlineTemplates 。
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"
}
}]
}
--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