调用DocuSign EnvelopeViews:createRecipient报内容类型不支持错误
DocuSign调用createRecipient接口返回INVALID_CONTENT_TYPE问题解决
ERROR: Content Type specified is not supported.
问题背景
- 提问者为DocuSign新用户,已注册开发者账号、创建QuickStart项目,目标是在自有应用集成*嵌入式签名(Embedded Signing)*能力,用户无需跳转离开当前应用即可使用DocuSign服务。
- 已完成操作:成功创建附带示例文档的信封(envelope),调用
EnvelopeViews: createRecipient接口获取收件人视图访问URL,接口路径为:POST {{baseUrl}}/v2.1/accounts/{{accountId}}/envelopes/{{envelopeId}}/views/recipient - 已确认accountId、envelopeId等路径参数准确,接口请求体如下:
{ "authenticationMethod": "none", "clientUserId": "bcc49234-f30b-XXXX-XXXX-XXXXXXXXXXXX", "email": "abc@gmail.com", "recipientId": "007", "returnUrl":"http://localhost", "userName": "user name" } - 现有疑问:当前clientUserId字段传入的是Integration Key(集成密钥),不确定传值是否正确。
- 接口返回错误内容:
{ "errorCode": "INVALID_CONTENT_TYPE", "message": "Content Type specified is not supported." } - 诉求:获取该错误的解决方案,以及嵌入式签名场景的实现参考。
解决方案
1. INVALID_CONTENT_TYPE错误修复
该报错由请求头Content-Type设置不符合要求导致。调用DocuSign REST API传递JSON格式请求体时,必须在请求头中显式添加:
Content-Type: application/json
不要使用text/plain、multipart/form-data、application/x-www-form-urlencoded等其他类型。如果使用官方SDK发起请求,SDK会自动补全该请求头;手动构造HTTP请求时必须手动设置该字段。
2. clientUserId字段传值修正
将Integration Key传入clientUserId的做法不正确:
- clientUserId是自有业务系统给签名收件人分配的唯一标识,作用是标记该收件人为嵌入式签名收件人,该值由开发者自行生成维护,和Integration Key没有关联。
- 核心校验规则:创建信封时给对应收件人配置的clientUserId,必须和调用createRecipient接口时传入的clientUserId完全一致,否则会触发收件人匹配失败错误。
- 当前请求体中其余字段格式符合要求,注意recipientId也必须和创建信封时设置的对应收件人ID完全匹配。
3. 嵌入式签名实现参考
- 完整流程:创建信封时给收件人设置clientUserId标记为嵌入式签名 -> 信封创建成功后调用createRecipient接口获取签名视图URL -> 将URL嵌入自有应用的iframe或独立页面供用户签名 -> 用户完成签名/拒绝签名后会自动跳转至预先设置的returnUrl地址。
- returnUrl要求:生产环境必须使用https协议,且域名需要和Integration Key配置的允许重定向域名一致,本地调试阶段可以使用
http://localhost。 - authenticationMethod字段填写自有系统的用户认证方式即可,例如账号密码登录填
Password,短信验证码登录填SMS,测试场景可填none,生产环境建议如实填写。
内容的提问来源于stack exchange,提问作者Umair
相关产品推荐
相关产品推荐

