You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP调用DocuSign API发送签署文档遇401认证失败错误求助

解决DocuSign步骤2调用401认证失败问题

你遇到的问题是步骤1登录成功,但创建信封时返回401认证失败,以下是针对性的排查和修复方案:

1. 修复认证头的语法错误

你的代码中构造认证头的行存在字符串未闭合和多余分号的问题:

// 错误写法
$header = "<DocuSignCredentials><Username>" . $email . "</Username><Password>" . $password . "</Password><IntegratorKey>" . $integratorKey . "</IntegratorKey></DocuSignCredentials>;;

虽然步骤1可能侥幸成功,但这个错误会导致步骤2的认证头格式异常。修正为:

// 正确写法
$header = "<DocuSignCredentials><Username>" . $email . "</Username><Password>" . $password . "</Password><IntegratorKey>" . $integratorKey . "</IntegratorKey></DocuSignCredentials>";

确保XML格式完整,字符串正确闭合,无多余符号。

2. 移除手动设置的Content-Length

步骤2中手动计算Content-Length的方式不适用于包含二进制PDF的multipart请求,strlen()无法准确计算二进制数据长度,会导致请求结构损坏,间接引发认证错误。修改请求头设置:

// 移除Content-Length参数
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: multipart/form-data;boundary=myboundary',
    "X-DocuSign-Authentication: $header" )
);

让curl自动处理Content-Length,保证请求格式正确。

3. 验证PDF文件读取完整性

添加文件读取校验,确保PDF文件被完整读取:

$file_contents = file_get_contents($document_name);
if ($file_contents === false) {
    echo "无法读取指定的PDF文件";
    exit(-1);
}

不完整的文件内容会破坏multipart请求结构,导致服务器无法正确解析请求,返回错误的认证提示。

4. 确认baseUrl格式正确

步骤1输出的baseUrl格式应为https://demo.docusign.net/restapi/v2/accounts/{你的账户ID},确保拼接/envelopes后没有多余空格或字符,最终请求地址类似:

https://demo.docusign.net/restapi/v2/accounts/123456/envelopes

内容的提问来源于stack exchange,提问作者Nancy Moore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 03:45:39