Docusignapi 试图提供文档以覆盖服务器模板会导致未指定错误已添加具有相同密钥的项

Docusignapi 试图提供文档以覆盖服务器模板会导致未指定错误已添加具有相同密钥的项,docusignapi,Docusignapi,我正在尝试将使用docusignsoapapi方法CreateEnvelopeFromTemplatesAndForms的代码移植到RESTAPI。我用了这一页 我遇到了一个障碍,当我试图指定一个要发布的文档来覆盖服务器模板的文档时,我得到了一个未指定的错误,“已经添加了一个具有相同密钥的项” 我移植的代码使用两个内联模板和一个服务器模板 服务器模板可以包含一个或多个要用本地文档覆盖的文档。在SOAP方法中,文档在第一个内联模板中指定。接下来指定服务器模板。第二个内联模板是序列中的第三个,具有收

我正在尝试将使用docusignsoapapi方法CreateEnvelopeFromTemplatesAndForms的代码移植到RESTAPI。我用了这一页

我遇到了一个障碍,当我试图指定一个要发布的文档来覆盖服务器模板的文档时,我得到了一个未指定的错误,“已经添加了一个具有相同密钥的项”

我移植的代码使用两个内联模板和一个服务器模板

服务器模板可以包含一个或多个要用本地文档覆盖的文档。在SOAP方法中,文档在第一个内联模板中指定。接下来指定服务器模板。第二个内联模板是序列中的第三个,具有收件人和自定义字段。这些都添加到内联模板的信封属性中

  • 内联模板-文档
  • 服务器模板
  • 内联模板-收件人和自定义字段
  • 在RESTAPI中,内联模板似乎没有信封属性,我也找不到SOAP和REST之间清晰的迁移指南。如果我从内联模板中排除我的“documents”属性,信封将发送。如果尝试使用compositeTemplate的document属性,则会出现相同的错误。以下是我的网络请求:

    POST https://demo.docusign.net/restapi/v2/accounts/ACCOUNTID/envelopes HTTP/1.1
    X-DocuSign-Authentication: <DocuSignCredentials><Username>USERNAME</Username><Password>PASSWORD</Password><IntegratorKey>INTEGRATOR_KEY</IntegratorKey></DocuSignCredentials>
    Accept: application/json
    Content-Type: multipart/form-data; boundary=Ne737Hao~j
    Host: demo.docusign.net
    Content-Length: 29110
    Expect: 100-continue
    
    --Ne737Hao~j
    Content-Type: application/json
    Content-Disposition: form-data
    
    {
      "status": "sent",
      "emailSubject": "Test Doc",
      "emailBlurb": "This is a test doc",
      "compositeTemplates": [
        {
          "serverTemplates": [
            {
              "sequence": "2",
              "templateId": "0b9f2226-6c2b-4c75-84c4-c1708a5c7b97"
            }
          ],
          "inlineTemplates": [
            {
              "sequence": "1",
              "documents": [
                {
                  "documentId": "1",
                  "name": "Donuts.pdf",
                  "transformPdfFields": "false"
                }
              ]
            },
            {
              "sequence": "3",
              "recipients": {
                "signers": [
                  {
                    "name": "ME",
                    "recipientId": "99f8f51b-ef21-46b6-a551-69c8b27159d4",
                    "roleName": "Signer 1",
                    "email": "MY_EMAIL_ADDRESS"
                  },
                  {
                    "name": "ME",
                    "recipientId": "bb4388f3-098e-4d3e-bcf2-20c1ae0a7c48",
                    "roleName": "Signer 2",
                    "email": "MY_EMAIL_ADDRESS"
                  }
                ],
                "carbonCopies": [
                  {
                    "name": "ME",
                    "recipientId": "bc65de08-984e-4f95-925d-fcf00c05966d",
                    "roleName": "Auditor",
                    "email": "MY_EMAIL_ADDRESS"
                  }
                ]
              }
            }
          ]
        }
      ],
      "customFields": {
        "textCustomFields": [
          {
            "name": "TemplateName",
            "show": "false",
            "value": "Test Template"
          }
        ]
      }
    }
    --Ne737Hao~j
    Content-Type: application/pdf
    Content-Disposition:file; file="Donuts.pdf"; documentId=1
    Content-Transfer-Encoding: binary
    
    %PDF-1.6
    REST OF PDF BYTES
    %%EOF
    
    --Ne737Hao~j--
    
    POSThttps://demo.docusign.net/restapi/v2/accounts/ACCOUNTID/envelopes HTTP/1.1
    X-DocuSign-Authentication:USERNAMEPASSWORDINTEGRATOR\u密钥
    接受:application/json
    内容类型:多部分/表单数据;边界=Ne737Hao~j
    主机:demo.docusign.net
    内容长度:29110
    预期:100人继续
    --Ne737Hao~j
    内容类型:application/json
    内容配置:表单数据
    {
    “状态”:“已发送”,
    “emailSubject”:“测试文档”,
    “emailBlurb”:“这是一份测试文档”,
    “compositeTemplates”:[
    {
    “服务器模板”:[
    {
    “顺序”:“2”,
    “模板ID”:“0b9f2226-6c2b-4c75-84c4-c1708a5c7b97”
    }
    ],
    “inlineTemplates”:[
    {
    “顺序”:“1”,
    “文件”:[
    {
    “documentId”:“1”,
    “名称”:“Donuts.pdf”,
    “TransformPdfields”:“false”
    }
    ]
    },
    {
    “顺序”:“3”,
    “收件人”:{
    “签署人”:[
    {
    “姓名”:“我”,
    “收件人ID”:“99f8f51b-ef21-46b6-a551-69c8b27159d4”,
    “roleName”:“签名人1”,
    “电子邮件”:“我的电子邮件地址”
    },
    {
    “姓名”:“我”,
    “接收方ID”:“bb4388f3-098e-4d3e-bcf2-20c1ae0a7c48”,
    “roleName”:“签名人2”,
    “电子邮件”:“我的电子邮件地址”
    }
    ],
    “复写本”:[
    {
    “姓名”:“我”,
    “接收方ID”:“bc65de08-984e-4f95-925d-fcf00c05966d”,
    “roleName”:“审计员”,
    “电子邮件”:“我的电子邮件地址”
    }
    ]
    }
    }
    ]
    }
    ],
    “自定义字段”:{
    “textCustomFields”:[
    {
    “名称”:“TemplateName”,
    “show”:“false”,
    “值”:“测试模板”
    }
    ]
    }
    }
    --Ne737Hao~j
    内容类型:application/pdf
    内容配置:文件;file=“Donuts.pdf”;documentId=1
    内容传输编码:二进制
    %PDF-1.6
    剩余的PDF字节
    %%EOF
    --Ne737Hao~j--
    
    提前谢谢

    我也已经看过了,运气不好

    更新

    在尝试了下面WTPAPI的答案之后,我又做了一些实验。我发现,如果我包含文档的base64,或者如果我将与文档字节一起发送的标题简化为Content Disposition:documentId=1,而不是此处显示的所有标题,则信封将与正确的文档一起发送:

    POSThttps://demo.docusign.net/restapi/v2/accounts/ACCOUNTID/envelopes HTTP/1.1
    X-DocuSign-Authentication:USERNAMEPASSWORDINTEGRATOR\u密钥
    接受:application/json
    内容类型:多部分/表单数据;边界=Ne737Hao~j
    主机:demo.docusign.net
    内容长度:29110
    预期:100人继续
    --Ne737Hao~j
    内容类型:application/json
    内容配置:表单数据
    {
    “状态”:“已发送”,
    “emailSubject”:“测试文档”,
    “emailBlurb”:“这是一份测试文档”,
    “compositeTemplates”:[
    {
    “服务器模板”:[
    {
    “顺序”:“2”,
    “模板ID”:“0b9f2226-6c2b-4c75-84c4-c1708a5c7b97”
    }
    ],
    “inlineTemplates”:[
    {
    “顺序”:“1”,
    “文件”:[
    {
    “documentId”:“1”,
    “名称”:“Donuts.pdf”,
    “TransformPdfields”:“false”
    }
    ]
    },
    {
    “顺序”:“3”,
    “收件人”:{
    “签署人”:[
    {
    “姓名”:“我”,
    “收件人ID”:“99f8f51b-ef21-46b6-a551-69c8b27159d4”,
    “roleName”:“签名人1”,
    “电子邮件”:“我的电子邮件地址”
    },
    {
    “姓名”:“我”,
    “接收方ID”:“bb4388f3-098e-4d3e-bcf2-20c1ae0a7c48”,
    “roleName”:“签名人2”,
    “电子邮件”:“我的电子邮件地址”
    }
    ],
    “复写本”:[
    {
    “姓名”:“我”,
    “接收方ID”:“bc65de08-984e-4f95-925d-fcf00c05966d”,
    “roleName”:“审计员”,
    “电子邮件”:“我的电子邮件地址”
    }
    ]
    }
    }
    ]
    }
    ],
    “自定义字段”:{
    “textCustomFields”:[
    {
    “名称”:“TemplateName”,
    “show”:“false”,
    “值”:“测试模板”
    }
    ]
    }
    }
    --Ne737Hao~j
    内容配置:documentId=1
    %PDF-1.6
    剩余的PDF字节
    %%EOF
    --Ne737Hao~j--
    
    应选择“文档”节点和“收件人”
    POST https://demo.docusign.net/restapi/v2/accounts/ACCOUNTID/envelopes HTTP/1.1
    X-DocuSign-Authentication: <DocuSignCredentials><Username>USERNAME</Username><Password>PASSWORD</Password><IntegratorKey>INTEGRATOR_KEY</IntegratorKey></DocuSignCredentials>
    Accept: application/json
    Content-Type: multipart/form-data; boundary=Ne737Hao~j
    Host: demo.docusign.net
    Content-Length: 29110
    Expect: 100-continue
    
    --Ne737Hao~j
    Content-Type: application/json
    Content-Disposition: form-data
    
    {
      "status": "sent",
      "emailSubject": "Test Doc",
      "emailBlurb": "This is a test doc",
      "compositeTemplates": [
        {
          "serverTemplates": [
            {
              "sequence": "2",
              "templateId": "0b9f2226-6c2b-4c75-84c4-c1708a5c7b97"
            }
          ],
          "inlineTemplates": [
            {
              "sequence": "1",
              "documents": [
                {
                  "documentId": "1",
                  "name": "Donuts.pdf",
                  "transformPdfFields": "false"
                }
              ]
            },
            {
              "sequence": "3",
              "recipients": {
                "signers": [
                  {
                    "name": "ME",
                    "recipientId": "99f8f51b-ef21-46b6-a551-69c8b27159d4",
                    "roleName": "Signer 1",
                    "email": "MY_EMAIL_ADDRESS"
                  },
                  {
                    "name": "ME",
                    "recipientId": "bb4388f3-098e-4d3e-bcf2-20c1ae0a7c48",
                    "roleName": "Signer 2",
                    "email": "MY_EMAIL_ADDRESS"
                  }
                ],
                "carbonCopies": [
                  {
                    "name": "ME",
                    "recipientId": "bc65de08-984e-4f95-925d-fcf00c05966d",
                    "roleName": "Auditor",
                    "email": "MY_EMAIL_ADDRESS"
                  }
                ]
              }
            }
          ]
        }
      ],
      "customFields": {
        "textCustomFields": [
          {
            "name": "TemplateName",
            "show": "false",
            "value": "Test Template"
          }
        ]
      }
    }
    --Ne737Hao~j
    Content-Disposition:documentId=1
    
    %PDF-1.6
    REST OF PDF BYTES
    %%EOF
    
    --Ne737Hao~j--
    
    {
        "status": "sent",
        "emailSubject": "Test Doc",
        "emailBlurb": "This is a test doc",
        "compositeTemplates": [
            {
                "serverTemplates": [
                    {
                        "sequence": "2",
                        "templateId": "0b9f2226-6c2b-4c75-84c4-c1708a5c7b97"
                    }
                ],
                "inlineTemplates": [
                    {
                        "sequence": "1",
                        "documents": [
                            {
                                "documentId": "1",
                                "name": "Donuts.pdf",
                                "transformPdfFields": "false"
                            }
                        ],
                        "recipients": {
                            "signers": [
                                {
                                    "name": "ME",
                                    "recipientId": "99f8f51b-ef21-46b6-a551-69c8b27159d4",
                                    "roleName": "Signer 1",
                                    "email": "MY_EMAIL_ADDRESS"
                                },
                                {
                                    "name": "ME",
                                    "recipientId": "bb4388f3-098e-4d3e-bcf2-20c1ae0a7c48",
                                    "roleName": "Signer 2",
                                    "email": "MY_EMAIL_ADDRESS"
                                }
                            ],
                            "carbonCopies": [
                                {
                                    "name": "ME",
                                    "recipientId": "bc65de08-984e-4f95-925d-fcf00c05966d",
                                    "roleName": "Auditor",
                                    "email": "MY_EMAIL_ADDRESS"
                                }
                            ]
                        }
                    }
                ]
            }
        ],
        "customFields": {
            "textCustomFields": [
                {
                    "name": "TemplateName",
                    "show": "false",
                    "value": "Test Template"
                }
            ]
        }
    }