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

使用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 23:28:18