我正在尝试使用两个服务器端模板和我在一个请求中生成的pdf文档创建嵌入式签名信封。其中一个服务器端模板有一个DOB选项卡,该选项卡将填入请求中指定的数据。
我已经回顾了与docusign api相关的一些其他问题以及包含文档here和here的复合模板。我使用这些示例来格式化我的请求。
这是请求:注意:我正在使用multipart-post gem here来创建请求,因此这个请求中的一些是带有一些multipart-post信息的伪HTTP。我不知道如何获得完整格式的HTTP请求以便在此处发布。
POST http://localhost/restapi/v2/accounts/2/envelopes
X-DocuSign-Authentication: [omitted]
-------------RubyMultipartPost
Content-Type: application/json
Content-Disposition: form-data;
name="post_body"
{
"compositeTemplates": [
{
"serverTemplates": [
{
"sequence": 1,
"templateId": "3093E017-2E18-4A30-A104-0201C601CE5F"
}
],
"inlineTemplates": [
{
"sequence": 1,
"recipients": {
"signers": [
{
"email": "jond@gmail.com",
"name": "Jon D. Doe",
"recipientId": "1",
"roleName": "Proposed Insured",
"clientUserId": "jond@gmail.com",
"tabs": {
"textTabs": [
],
"checkboxTabs": [
],
"fullNameTabs": [
],
"dateTabs": [
{
"tabLabel": "DOB",
"name": null,
"value": "1-21-1974",
"documentId": null,
"selected": null
}
]
}
}
]
}
}
],
"document": {
"documentId": "1",
"name": "test.pdf"
}
},
{
"serverTemplates": [
{
"sequence": 2,
"templateId": "63CA2E24-BBB8-499F-A884-021580DF54AF"
}
],
"inlineTemplates": [
{
"sequence": 2,
"recipients": {
"signers": [
{
"email": "jond@gmail.com",
"name": "Jon D. Doe",
"recipientId": "1",
"roleName": "Proposed Insured",
"clientUserId": "jond@gmail.com",
"tabs": {
"textTabs": [
],
"checkboxTabs": [
],
"fullNameTabs": [
],
"dateTabs": [
{
"tabLabel": "DOB",
"name": null,
"value": "1-21-1974",
"documentId": null,
"selected": null
}
]
}
}
]
}
}
]
}
],
"status": "sent"
}
-------------RubyMultipartPost
Content-Disposition: file;filename="test.pdf";documentid=1;name="file1"
Content-Length: 34967
Content-Type: application/pdf
Content-Transfer-Encoding: binary
[pdf bytes omitted]
生成的嵌入视图中只有两个文档。第一个是我在请求中上传的test.pdf,第二个是templateId = 63CA2E24-BBB8-499F-A884-021580DF54AF指定的服务器端模板
我不确定我做错了什么......根据我上面提到的其他问题,这应该有效。
答案 0 :(得分:2)
每个 compositeTemplate 对象只能提供来自单个来源的文件 - 如果 compositeTemplate 对象指定文档,那么&#39 ; s被认为是 compositeTemplate 对象的文档源。在这种情况下,任何碰巧属于同一 compositeTemplate 对象中 serverTemplate 的文档都将被忽略。这似乎是你正在经历的事情。
您发布的请求仅包含两个 compositeTemplate 对象,因此生成的Envelope仅包含来自两个文档来源的文档:
第一个 compositeTemplate 对象中指定的文档。
第二个 compositeTemplate 对象中指定的serverTemplate中包含的文件。
如果您希望Envelope还包含serverTemplate 3093E017-2E18-4A30-A104-0201C601CE5F
中包含的文件,则需要在指定{的请求中添加第三个 compositeTemplate 对象{1}}作为服务器模板,并使用 inlineTemplate 信息提供必要的收件人和标签信息(正如您在其他 compositeTemplate 对象中所做的那样请求你发布)。 [请参阅下面的完整请求示例。]
最后,请注意每个 compositeTemplate 对象中序列属性的值指定 serverTemplates 和 inlineTemplates的顺序将在特定的compositeTemplate 范围内应用 - 它不会影响Envelope中的文档序列。它是请求JSON / XML本身中 compositeTemplate 对象的顺序,用于确定生成的Envelope中的文档序列。
以下请求将导致包含以下文件的信封(按此顺序):
3093E017-2E18-4A30-A104-0201C601CE5F
3093E017-2E18-4A30-A104-0201C601CE5F
请求正文(JSON部分):
63CA2E24-BBB8-499F-A884-021580DF54AF