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

使用C# DocuSign SDK创建信封时遇CreateEnvelope调用错误排查

问题排查与修复方案

1. 未将AccessToken绑定到ApiClient

你成功获取了JWT令牌,但未将其注入apiClient的请求头中,导致所有请求都缺少授权信息,这是核心错误之一。修正初始化代码:

DocuSignClient apiClient = new(options.OAuthBasePath); // 设置为"demo.docusign.net"
EnvelopesApi envelopesApi = new(apiClient);

var accessToken = GetAccessToken(apiClient, options);
// 新增:将令牌绑定到ApiClient的默认请求头
apiClient.Configuration.DefaultHeader.Add("Authorization", $"Bearer {accessToken}");

2. 签署者缺少必填的签署位置标签

DocuSign要求每个签署者必须指定至少一个签署位置(SignHere标签),否则信封无法创建——系统不知道让签署者在哪里签字。修改RequestSignature方法中的Signer构造逻辑:

Signers = request.Signers
    .Select((signer, idx) => new Signer()
    {
        Email = signer.Email,
        Name = signer.Name,
        RecipientId = idx.ToString(),
        RoutingOrder = idx.ToString(),
        // 新增:添加签署位置标签(示例为文档第一页左上角)
        Tabs = new Tabs
        {
            SignHereTabs = new List<SignHere>
            {
                new SignHere
                {
                    DocumentId = "1",
                    PageNumber = "1",
                    XPosition = "100",
                    YPosition = "100"
                }
            }
        }
    })
    .ToList(),

3. 确保AccountId有效且正确获取

你的代码中使用了accountId变量,但未展示其来源。正确的做法是从JWT令牌响应中获取账号ID:

// 在GetAccessToken方法返回令牌后,添加以下代码获取账号ID
var userInfo = apiClient.GetUserInfo(accessToken);
var accountId = userInfo.Accounts.First().AccountId;

4. 添加异常捕获以获取详细错误信息

当前无描述错误是因为未捕获ApiException,这类异常包含DocuSign返回的完整错误详情,能快速定位问题:

public async Task<EnvelopeSummary> RequestSignature(SignatureRequest request, string accountId)
{
    try
    {
        // 原信封构造代码...
        var result = await envelopesApi.CreateEnvelopeAsync(accountId, envelope);
        return result;
    }
    catch (ApiException ex)
    {
        // 输出详细错误信息用于排查
        Console.WriteLine($"错误代码:{ex.ErrorCode}");
        Console.WriteLine($"错误描述:{ex.Message}");
        Console.WriteLine($"响应内容:{ex.ResponseBody}");
        throw;
    }
}

额外验证项

  • 确认私钥文件格式正确(PEM格式,无多余空格或换行)
  • 检查options.UserId为正确的用户UUID(可在DocuSign开发者控制台查看)
  • 确保测试邮箱未被加入DocuSign拒收列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 01:12:11