服务器端模板将替换为上载的文档

时间:2014-07-25 23:24:25

标签: ruby docusignapi

我正在尝试使用两个服务器端模板和我在一个请求中生成的pdf文档创建嵌入式签名信封。其中一个服务器端模板有一个DOB选项卡,该选项卡将填入请求中指定的数据。

我已经回顾了与docusign api相关的一些其他问题以及包含文档herehere的复合模板。我使用这些示例来格式化我的请求。

这是请求:注意:我正在使用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指定的服务器端模板

我不确定我做错了什么......根据我上面提到的其他问题,这应该有效。

1 个答案:

答案 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中的文档序列。

以下请求将导致包含以下文件的信封(按此顺序):

  1. 来自模板3093E017-2E18-4A30-A104-0201C601CE5F
  2. 的文件
  3. 请求指定的文档(documentId = 1)
  4. 来自模板3093E017-2E18-4A30-A104-0201C601CE5F
  5. 的文件

    请求正文(JSON部分):

    63CA2E24-BBB8-499F-A884-021580DF54AF