1

我一直致力于将 DocuSign REST API 集成到我公司的应用程序中。事情大部分都在工作,但仍然存在一个问题。如果我上传多个 (>= 2) 文档,每个文档都有一个关联的服务器模板,那么所有模板最终都会应用于第一个文档。

例如,以下 API 调用/accounts/account_id/envelopes应上传两个文档:document1.pdf(7 页)和document2.pdf(2 页)。document1.pdf的服务器模板在第 7 页有一个 sign-here 字段,而document2.pdf的服务器模板在第 2 页有一个 sign-here 字段。

DocuSign 网站上显示的是一个信封,其中包含正确上传的两个文档,但document2.pdf's sign-here 字段出现在 的第 2 页上document1.pdf。如果我在 上手动删除并重新应用模板document2.pdf,则该字段将正确放置。我怀疑这是由于我的sequence属性存在一个微妙的问题,但我一直无法弄清楚到底出了什么问题。

{
  "allowReassign": false,
  "emailBlurb": "email text",
  "emailSubject": "subject",
  "status": "created",
  "compositeTemplates": [
    {
      "document": {
        "name": "document1.pdf",
        "documentId": "1"
      },
      "serverTemplates": [
        {
          "sequence": "1",
          "templateId": "12345678-abcd-1234-abcd-1234567890ab"
        }
      ],
      "inlineTemplates": [
        {
          "sequence": "1",
          "recipients": {
            "signers": [
              {
                "name": "Test Primary",
                "email": "test@example.com",
                "recipientId": "1",
                "routingOrder": "1",
                "roleName": "RoleOne"
              }
            ]
          }
        }
      ]
    },
    {
      "document": {
        "name": "document2.pdf",
        "documentId": "2"
      },
      "serverTemplates": [
        {
          "sequence": "2",
          "templateId": "abcdef12-1234-abcd-1234-abcdef123456"
        }
      ],
      "inlineTemplates": [
        {
          "sequence": "2",
          "recipients": {
            "signers": [
              {
                "name": "Test Primary",
                "email": "test@example.com",
                "recipientId": "1",
                "routingOrder": "1",
                "roleName": "RoleOne"
              }
            ]
          }
        }
      ]
    }
  ]
}
4

3 回答 3

2

这个例子中的这个问题不是序列。它是传入的文档的 documentId。

创建服务器端模板时,将其视为 documentId=1。在这种情况下,使用了两个服务器端模板,一个用于每个复合模板部分,并且每个模板的 documentId=1。放置在这些模板文档上的选项卡与 documentId=1 相关联。为每个复合模板传递的文档的 documentId 也应该是 documentId=1,因此当该文档覆盖时,ID 匹配。

该示例将传入的第二个文档设置为 documentId=2。因此,当信封/模板信息折叠在一起时,选项卡保留与 documentId=1 的关联,因此它们出现在第一个文档的第 2 页和第 7 页上,第二个模板与 documentId 2 重叠,因此不会有任何标签。

如果两个复合模板的传入文档都使用 documentId=1,则选项卡将在每个复合模板中正确关联,然后 documentID 将与选项卡 ID 一起在最终信封中重新排序。

第一个复合模板中的序列号可以是 1,2,3,4 或 1,2,第二个复合模板中的序列号可以是 1,2。

工作示例:

POST http://localhost/restapi/v2/accounts/2/envelopes
X-DocuSign-Authentication: [omitted]
Accept: application/json
Content-Type: multipart/form-data; boundary=70fcb373-f40d-40bb-bddb-204fe789087f
X-DocuSign-ClientTransactionId: T635316112162595227

--70fcb373-f40d-40bb-bddb-204fe789087f
Content-Type: application/json
Content-Disposition: form-data

{
  "compositeTemplates": [
      {
        "compositeTemplateId": "1",
        "serverTemplates": [
          {
            "sequence": "1",
            "templateId": "99B09A06-95AF-47A5-964B-A58E78B981DF"
          }
        ],
        "inlineTemplates": [
          {
            "sequence": "1",
            "recipients": {
              "signers": [
                {
                  "name": "Resty Tester",
                  "email": "resty.tester@gmail.com",
                  "recipientId": "1",
                  "routingOrder": "1",
                  "roleName": "RoleOne"
                }
              ]
            }
          }
        ],
        "document": {
          "documentId": "1",
          "name": "document1In.pdf"
        }
      },
      {
        "compositeTemplateId": "2",
        "serverTemplates": [
          {
            "sequence": "2",
            "templateId": "36FD0433-AAE0-43A7-B795-E06738159A59"
          }
        ],
        "inlineTemplates": [
          {
            "sequence": "2",
            "recipients": {
              "signers": [
                {
                  "name": "Resty Tester",
                  "email": "resty.tester@gmail.com",
                  "recipientId": "1",
                  "routingOrder": "1",
                  "roleName": "RoleOne"
                }
              ]
            }
          }
        ],
        "document": {
          "documentId": "1",
          "name": "document2In.pdf"
        }
      }
    ],
    "status": "created",
    "emailSubject": "Subject PostCompositeTemplate_PLAT_1647_20140328014654",
    "emailBlurb": "Blurb PostCompositeTemplate_PLAT_1647_20140328014654",
    "allowReassign": "false"
  }
  --70fcb373-f40d-40bb-bddb-204fe789087f
  Content-Type: application/pdf
  Content-Disposition: file; filename="document1In.pdf"; documentId=1;             compositeTemplateId="1"
  Content-Transfer-Encoding: base64

  [bytes omitted]
  --70fcb373-f40d-40bb-bddb-204fe789087f
  Content-Type: application/pdf
  Content-Disposition: file; filename="document2In.pdf"; documentId=1; compositeTemplateId="2"
  Content-Transfer-Encoding: base64

  [bytes omitted]
  --70fcb373-f40d-40bb-bddb-204fe789087f--
  201 Created
  Pragma: no-cache
  X-DocuSign-ClientTransactionId: T635316112162595227
  Content-Length: 198
  Cache-Control: no-cache
  Content-Type: application/json; charset=utf-8
  Date: Fri, 28 Mar 2014 20:46:58 GMT
  Expires: -1

  {
    "envelopeId": "5b28e38e-84c0-4af0-a3d0-e3c1e6cee17d",
    "uri": "/envelopes/5b28e38e-84c0-4af0-a3d0-e3c1e6cee17d",
    "statusDateTime": "2014-03-28T20:46:57.4300000Z",
    "status": "created"
  }
于 2014-03-28T22:49:48.727 回答
0

关于顺序,请参见我的问题here。 序列号应表示当前复合模板范围内的对象序列。我为内联模板增加了我的 seq#,它工作正常。话虽如此,这可能不是关于 sig 页面附加不正确的问题。不过,我会从那里开始。希望这可以帮助。

于 2013-11-22T22:18:00.717 回答
0

我已经成功地重现了您描述的问题,并尝试通过使用序列值的各种组合来解决该问题,但均无济于事。这对我来说似乎是一个错误。

于 2013-11-22T22:25:23.657 回答