Docusign教程-PHP API旋度错误-“0”;缓冲区不能为空";

Docusign教程-PHP API旋度错误-“0”;缓冲区不能为空";,php,json,curl,docusignapi,Php,Json,Curl,Docusignapi,我遵循docusign的教程,使用他们的PHP API创建一个信封。可在此处找到教程: 我复制了代码并下载了示例文件,现在得到了以下响应: “错误代码”:“未指定的错误”,“消息”:“缓冲区不能为空。\r\n参数名称:缓冲区” 我认为错误可能与此部分有关: $requestBody = "\r\n" ."\r\n" ."--myboundary\r\n" ."Content-Type: application/json\r\n" ."Content-Disposition: form-data\

我遵循docusign的教程,使用他们的PHP API创建一个信封。可在此处找到教程:

我复制了代码并下载了示例文件,现在得到了以下响应: “错误代码”:“未指定的错误”,“消息”:“缓冲区不能为空。\r\n参数名称:缓冲区”

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

$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\u字符串在他们的示例中没有定义。有一个数据定义:

$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_字符串

我尝试使用“TEST”作为$data\u字符串的值,得到:
“errorCode”:“无效的多部分请求”,“消息”:“在分析多部分请求时发现错误。多部分请求的第一部分中的JSON数据与预期格式不匹配。预期标记为“true”,但发现为“TEST”。

然后,我将$data\u string的值设置为布尔值(TRUE),并得到以下错误消息:
errorCode:“无效的多部分请求”,“消息”:“解析多部分请求时发现错误。多部分请求的第一部分中的JSON数据与预期格式不匹配。“


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

是的,这是一个bug。我正在创建一个从该示例代码派生的合理PHP类文件。下面是一个从该代码派生的类,它可以工作,而且更简洁:--如果您对探索DocuSign以外的内容感兴趣,请随时检查该项目ect不时为其他供应商提供其他示例,例如RightSignature,我将在下一步处理它。

您需要做的就是在代码中将$data\u字符串更改为$data


感谢您捕捉到这一点,我已经更新了请求签名页面上的要点,现在应该可以使用了。

p.S.我还添加了一个检查,以确保文档ID是GUID或整数。我注意到,如果您尝试使用“收件人1”之类的内容作为“收件人ID”,服务将返回一条错误消息“在JSONFYI文档中,JSONFYI为RESTAPI发布了Java和PHP客户端库。请看这里: