调用DocuSign处理文档时持续出现AUTHORIZATION_INVALID_TOKEN错误求助
问题描述
账户详情:
$integrationKey = '9eaed807-bd9f-4d38-b858-37f6eccc6b73'; // Your Integration Key $userId = 'd4300ed6-aa42-47cd-b687-01c825726abd'; // Your User ID (GUID) $accountId = '8c637b59-afa2-4821-8c5d-981bacf4ddde'; // Your Account ID
使用PHP发起签署操作时,持续遇到401错误:
请求服务器时出错,收到非成功HTTP状态码[401],响应体为:
O:8:"stdClass":2:{s:9:"errorCode";s:27:"AUTHORIZATION_INVALID_TOKEN";s:7:"message";s:59:"The access token provided is expired, revoked or malformed.";}
排查与解决方案
1. 检查访问令牌有效性
- 确认令牌是否过期:多数OAuth2令牌(包括DocuSign的)默认1小时有效期,到期需重新获取
- 验证令牌是否被撤销:若集成密钥、关联用户权限被修改或禁用,令牌会失效,需检查账户权限配置
- 核对令牌格式:确保请求中携带的令牌完整,无截断、多余引号或转义字符
2. 验证JWT授权流程(若使用JWT)
如果通过JWT获取令牌,需确认:
- 集成密钥已启用JWT授权,且绑定的用户ID与上述
$userId一致 - 生成JWT的私钥未过期、未泄露,且与DocuSign平台配置的公钥匹配
- JWT参数合规:受众(
aud)需对应沙箱(account-d.docusign.com)或生产环境(account.docusign.com),过期时间(exp)不能超出合理范围
3. 检查请求头的令牌携带方式
确保请求头正确设置授权字段,示例:
$headers = [ 'Authorization: Bearer ' . $accessToken, 'Content-Type: application/json' ];
注意Bearer与令牌之间必须有空格,避免格式错误
4. 核对账户与环境匹配
- 确认集成密钥、用户ID、账户ID属于同一环境(沙箱/生产),禁止混用沙箱令牌访问生产API,反之亦然
- 检查API端点是否正确:沙箱用
https://demo.docusign.net/restapi,生产用https://www.docusign.net/restapi
5. 测试令牌有效性
可通过调用用户信息端点验证令牌是否可用:
$ch = curl_init('https://demo.docusign.net/restapi/v2.1/oauth/userinfo'); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $accessToken]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); var_dump($response);
若返回401则令牌无效,需重新生成;若返回用户信息,再检查签署请求的其他参数是否正确
内容的提问来源于stack exchange,提问作者Uday Kumar
相关产品推荐
相关产品推荐

