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

如何使用WebClient调用DocuSign POST API传参生成token

核心注意点

DocuSign的JWT换token接口只接受application/x-www-form-urlencoded格式的请求体,传JSON或者把参数拼在URL上都会调用失败,必填参数规则:

  • grant_type:固定传urn:ietf:params:oauth:grant-type:jwt-bearer,不要用其他OAuth2授权类型的取值
  • assertion:你提前用DocuSign分配的RSA私钥签名生成的合法JWT字符串
WebClient实现代码

以下是Spring WebClient的可直接复用的实现,包含异常处理和结果解析:

import org.springframework.http.MediaType;
import org.springframework.web.reactive.function.BodyInserters;
import org.springframework.web.reactive.function.client.WebClient;
import java.util.Map;

// 建议将WebClient实例初始化为单例Bean,不要每次调用都新建
private static final WebClient DOCUSIGN_AUTH_CLIENT = WebClient.create("https://account-d.docusign.com");

public Map<String, Object> fetchAccessToken(String signedJwt) {
    return DOCUSIGN_AUTH_CLIENT.post()
            .uri("/oauth/token")
            .contentType(MediaType.APPLICATION_FORM_URLENCODED)
            .body(BodyInserters.fromFormData("grant_type", "urn:ietf:params:oauth:grant-type:jwt-bearer")
                    .with("assertion", signedJwt))
            .retrieve()
            // 接口报错时直接打印返回的错误信息,方便排查JWT签名、参数错误问题
            .onStatus(status -> !status.is2xxSuccessful(),
                    resp -> resp.bodyToMono(String.class)
                            .map(errMsg -> new IllegalStateException("获取DocuSign token失败: " + errMsg)))
            // 直接将返回结果解析为Map,也可以替换为自定义的Token响应实体类
            .bodyToMono(Map.class)
            .block();
}
常见报错排查

如果调用返回400错误,优先检查以下问题:

  • 确认Content-Type头是application/x-www-form-urlencoded,不是application/json
  • 确认JWT的payload字段符合要求:aud字段要和你调用的环境匹配(开发环境是account-d.docusign.com,生产环境是account.docusign.com),exp过期时间不要超过1小时,iss填你的集成密钥,sub填目标用户的API用户名
  • 确认JWT是用DocuSign后台给你的RSA私钥做的RS256签名,不要用对称加密算法
返回结果说明

调用成功后接口会返回标准JSON结构,包含以下字段:

  • access_token:后续调用DocuSign其他接口要携带的访问令牌
  • token_type:固定为Bearer
  • expires_in:token有效期,单位秒,开发环境默认3600秒

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 12:27:45