非常基本的东西 - 如何通过 REST API 将文档发送到文档?我只看到<文档字节到这里...>无处不在



你能告诉我下面的代码是否正常吗?

--MYBOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="sample.pdf";documentid=1
{ 
[B@17f7be7b
}
--MYBOUNDARY--

[B@17f7be7b是java为我的pdf返回的byteArray(pdf文件,只有"只是一个样本"作为内容)。我刚刚将该字节数组转换为字符串,并将其粘贴到此处。我得到

  "errorCode": "UNABLE_TO_LOAD_DOCUMENT",
  "message": "Unable to load the document. Unable to load Document(1). Error: the document is          corrupt, rebuilding failed"

请帮助我找到正确的方法。

关于您在问题中发布的内容的格式/内容的一些评论:

  • 字节流在请求中不应用大括号括起来。 即删除 {}
  • 在将字节流添加到 DocuSign 请求之前,请勿将其转换为字符串 - 字节流应直接写入请求中。
  • 如果你有[B@17f7be7b请求应该包含文件的完整未编码的*字节流*(不是表示字节流的字符串,而是字节流本身)。 您在问题中发布的值太短,无法成为PDF文件的有效/完整字节流。

您尚未发布相关代码,这使得调试更加困难,但从表面上看,您发布的文本至少存在两个问题。 一是文档字节不应用括号{ }括起来。

接下来,您看起来没有正确编码文档字节。 PDF 原始字节不会以 [B@1 开头...... 如果没有看到您的代码,我只能说您需要查看如何将 PDF 字节写入请求。

如此多的帖子显示"文档字节转到此处"的原因是,在示例请求中拥有一堆随机的、非人类可读的字符是毫无用处的。 如果您是程序员,并且了解将文档字节写入流意味着什么,那么您应该不会理解任何问题。 下面是一个示例请求,其中再次省略了文档字节数:

POST https://demo.docusign.net/restapi/v2/accounts/123456/envelopes HTTP/1.1
X-DocuSign-Authentication: {"Username":"USERNAME","Password":"PASSWORD","IntegratorKey":"INTEGRATOR_KEY"}
Content-Type: multipart/form-data; boundary=BOUNDARY
Accept: application/json
Host: demo.docusign.net
Content-Length: 23414
Expect: 100-continue
Connection: Keep-Alive
--BOUNDARY
Content-Type: application/json
Content-Disposition: form-data
{
    "status": "sent",
    "emailBlurb": "Test Email Body",
    "emailSubject": "Test Email Subject",
    "documents": [
        {
            "name": "test.pdf",
            "documentId": "1",
            "order": "1"
        }
    ],
    "recipients": {
        "signers": [
            {
                "email": "test@domain.com ",
                "name": "John Doe",
                "recipientId": "1",
                "tabs": {
                    "signHereTabs": [
                        {
                            "xPosition": "100",
                            "yPosition": "100",
                            "documentId": "1",
                            "pageNumber": "1"
                        }
                    ]
                }
            }
        ]
    }
}
--BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="document.pdf"; documentid="1"
[document bytes removed]
--BOUNDARY--
上述请求将发送一个签名请求,其中包含一个签名

类型的收件人,并将在文档右侧100像素和从文档左上角向下 100 像素的位置为他们放置一个签名选项卡。 查看 DocuSign API 演练以获取有关如何完成此操作的代码示例,特别是第 4 个演练文档请求签名向您展示了如何使用 6 种不同的语言(PHPJavascriptJavaC#PythonObjective-C)执行此操作,并附有说明:

http://iodocs.docusign.com/APIWalkthroughs

最新更新