使用JWT凭证调用DocuSign Rest API创建信封时curl返回false求助
问题:DocuSign JWT认证调用API仅返回false,无任何响应
我正尝试将原有使用DocuSign Rest API用户名/密码认证的代码升级为OAuth JWT认证(自动化服务场景下JWT更适配)。现有逻辑是调用DocuSign预建模板填充内容后发送给收件人,已生成JWT Bearer Token,但用curl调用API时仅返回“false”,连404这类错误响应都无法获取。代码运行在WordPress的functions.php文件中,旧认证方式已稳定使用多年,目前陷入瓶颈,官方文档未提供有效解决思路。
$fields = []; $initials = []; $checkboxes = []; $recipients = ['test@test.com']; $templateID = "2ce6c87b-****"; $accountId = '0cec5847-****'; $integratorKey = "d2c3fbe6-****"; $data = array( 'accountId' => $accountID, 'templateId' => $templateID, 'templateRoles' => $recipients, 'emailSubject' => 'Important Forms', 'status' => 'sent', ); $data_string = json_encode($data); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => ' https://demo.docusign.net/restapi/v2.1/accounts/123456789/envelopes', CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $data_string, CURLOPT_HTTPHEADER => array ('Authorization: Bearer eyJ0****'), )); $response = curl_exec($curl); $status = curl_getinfo($curl, CURLINFO_HTTP_CODE); echo json_encode($response); curl_close($curl);
排查与解决步骤
1. 先修复CURL请求本身的致命错误
curl_exec返回false通常是请求未成功发出,而非API返回结果。
- URL开头的空格:你的
CURLOPT_URL开头有多余空格' https://demo...',直接导致CURL解析URL失败,立即删除空格。 - 添加错误排查代码:在
curl_exec后加入以下代码,直接查看CURL底层错误:
if($response === false) { var_dump(curl_error($curl)); }
- 检查HTTPS支持:确认服务器PHP环境已启用
openssl扩展,否则CURL无法发起HTTPS请求。
2. 修正请求参数格式错误
- templateRoles格式错误:DocuSign要求该字段是对象数组,每个对象必须包含
email、name、roleName(匹配模板中定义的角色名),不能直接传邮箱字符串数组。修正示例:
$recipients = [ [ 'email' => 'test@test.com', 'name' => 'Test User', 'roleName' => 'Signer' // 替换为你模板中实际的角色名称 ] ];
- 硬编码accountId:URL中的
123456789是固定值,应替换为你定义的$accountId变量,否则请求的账户与实际授权账户不匹配。
3. 完善请求头配置
POST JSON数据必须添加Content-Type头,否则DocuSign无法解析请求体,补充后请求头如下:
CURLOPT_HTTPHEADER => array ( 'Authorization: Bearer eyJ0****', 'Content-Type: application/json' ),
4. 验证JWT Token有效性
- 环境匹配:确认Token是针对demo环境(
demo.docusign.net)生成的,沙箱与生产环境Token不通用。 - 授权状态:自动化服务首次使用JWT时,必须通过浏览器完成一次用户授权流程(获取consent),否则Token无法生效。
- 过期时间:JWT Token默认有效期1小时,重新生成新Token测试。
内容的提问来源于stack exchange,提问作者occitan
相关产品推荐
相关产品推荐

