Docusign教程 - PHP API cURL错误 - “缓冲区不能为空”

时间:2013-06-19 22:06:55

标签: php json curl docusignapi

我正在关注docusign的教程,使用他们的PHP API创建一个信封。 Tutorialis在这里找到:http://www.docusign.com/developer-center/quick-start/request-signatures

我复制了代码并下载了示例文件,现在我得到了这个回复: “errorCode”:“UNSPECIFIED_ERROR”,“message”:“缓冲区不能为空。\ r \ nParameter name:buffer”

我认为错误可能与此部分有关:

$requestBody = "\r\n"
."\r\n"
."--myboundary\r\n"
."Content-Type: application/json\r\n"
."Content-Disposition: form-data\r\n"
."\r\n"
."$data_string\r\n"
."--myboundary\r\n"
."Content-Type:application/pdf\r\n"
."Content-Disposition: file; filename=\"document.pdf\"; documentid=1 \r\n"
."\r\n"
."$file_contents\r\n"
."--myboundary--\r\n"
."\r\n";

我认为,问题在于$ data_string未在其示例中的任何位置定义。有一个数据定义:

$data = "{
\"emailBlurb\":\"This comes from PHP\",
\"emailSubject\":\"API Signature Request\",
\"documents\":[
{
\"documentId\":\"1\",
\"name\":\"document.pdf\"
}
],
\"recipients\":{
\"signers\":[
{
\"email\":$email,
\"name\":$name,
\"recipientId\":\"1\",
\"tabs\":{
\"signHereTabs\":[
{
\"xPosition\":\"100\",
\"yPosition\":\"100\",
\"documentId\":\"1\",
\"pageNumber\":\"1\"
}
]
}
}
]
},
\"status\":\"sent\"
}";

....但不是$ data_string。

我尝试使用“TEST”作为$ data_string的值并得到:"errorCode": "INVALID_MULTI_PART_REQUEST", "message": "An error was found while parsing the multipart request. The JSON data in the first part of the multi-part request does not match the expected format. The token 'true' was expected but found 'test'."

然后我将$ data_string的值设置为布尔值(TRUE)并收到以下错误消息:errorCode": "INVALID_MULTI_PART_REQUEST", "message": "An error was found while parsing the multipart request. The JSON data in the first part of the multi-part request does not match the expected format. "

非常感谢任何解决此问题的帮助。

2 个答案:

答案 0 :(得分:1)

是的,这是一个错误。我正在创建一个从该示例代码派生的合理的PHP类文件。这是一个派生自该代码的类,它的工作原理更加清晰:https://github.com/sylnsr/esign-samples/tree/master/docusign/php - 如果您有兴趣探索DocuSign之外的其他内容,请随时为其他项目办理登机手续其他供应商的样品,例如RightSignature,我将在下一步工作。

答案 1 :(得分:0)

您只需将$ data_string更改为代码中的$ data ...

感谢您抓住这一点,我已经在“请求签名”页面上更新了Gist,现在应该可以使用了。