【问题标题】:DocuSign API Signature Request - "Envelope definition missing"DocuSign API 签名请求 - “信封定义缺失”
【发布时间】:2013-11-27 03:58:48
【问题描述】:

我正在尝试通过 Javascript 使用 DocuSign API 请求签名。下面是我发送的多部分请求。问题是我收到错误响应:“信封不完整。完整的信封需要文档、收件人、标签和主题行。缺少信封定义。”显然,我在我的请求中包含了“envelopeDefinition”xml,而且我很确定所有必需的元素都在那里。任何指导将不胜感激。

--BOUNDARY--
Content-Type: application/xml
Content-Disposition: form-data

<envelopeDefinition xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.docusign.com/restapi"><emailSubject>Test Subject</emailSubject><documents><name>document.pdf</name><documentId>1</documentId></documents><recipients><signers><tabs><signHereTabs><pageNumber>1</pageNumber><documentId>1</documentId><xPosition>100</xPosition><yPosition>100</yPosition></signHereTabs></tabs><routingOrder>1</routingOrder><recipientId>1</recipientId><name>My Name</name><email>email@email.com</email></signers></recipients><status>sent</status></envelopeDefinition>

--BOUNDARY--
Content-Type: application/pdf
Content-Disposition: file; filename="document.pdf"; documentId=1 

[document bytes go here]

--BOUNDARY--

另外,我应该提到我正在使用 Msxml2.XMLHTTP。

【问题讨论】:

    标签: docusignapi


    【解决方案1】:

    如果还没有看到请求标头,我不能绝对确定您的问题是什么。但是,这里有几个建议:

    首先,您的 XML 请求正文似乎缺少几个元素。

    • 添加一个 元素作为 的子元素(即封装 name >documentId 文档的元素)

    • 添加一个元素作为的子元素(即封装pageNumberdocumentIdxPositionyPosition 元素)

    在 XML 中添加这些内容后,您的请求应如下所示:

    POST https://demo.docusign.net/restapi/v2/accounts/201105/envelopes HTTP/1.1
    
    X-DocuSign-Authentication: {"Username":"USERNAME","Password":"PASSWORD","IntegratorKey":"INTEGRATOR_KEY"}
    Content-Type: multipart/form-data; boundary=BOUNDARY
    Accept: application/xml
    Host: demo.docusign.net
    Content-Length: 23414
    Expect: 100-continue
    Connection: Keep-Alive
    
    --BOUNDARY
    Content-Type: application/xml
    Content-Disposition: form-data
    
    <envelopeDefinition xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.docusign.com/restapi">
        <emailSubject>Test Subject</emailSubject>
        <documents>
          <document>
            <name>document.pdf</name>
            <documentId>1</documentId>
          </document>
        </documents>
        <recipients>
            <signers>
                <tabs>
                    <signHereTabs>
                      <signHereTab>
                        <pageNumber>1</pageNumber>
                        <documentId>1</documentId>
                        <xPosition>100</xPosition>
                        <yPosition>100</yPosition>
                      </signHereTab>
                    </signHereTabs>
                </tabs>
                <routingOrder>1</routingOrder>
                <recipientId>1</recipientId>
                <name>My Name</name>
                <email>email@email.com</email>
            </signers>
        </recipients>
        <status>sent</status>
    </envelopeDefinition>
    
    --BOUNDARY
    Content-Type: application/pdf
    Content-Disposition: file; filename="document.pdf"; documentid="1"
    
    [document bytes removed]
    
    --BOUNDARY--
    

    其次,您似乎在请求中使用术语 BOUNDARY 作为您的部分分隔符 - 但您在所有三个位置都错误地使用它:- -边界--。如我上面包含的示例请求所示,前两个实例分隔符应该只在单词 BOUNDARY 之前有 --(连字符),像这样:

    --BOUNDARY
    

    只有最后出现的分隔符(在请求的最后)应该有两个前导和尾随连字符:

    --BOUNDARY--
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多