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

基于DocuSign C# Client实现分群签署体验的技术问询

我来帮你搞定用DocuSign C#客户端实现这种分群签署的需求,分两部分针对A组(代表)和B组(客户)分别配置对应的签署流程:

一、A组(代表):强制双因素认证账号的创建与签署配置

首先要给A组用户创建强制启用双因素认证的账号,之后发送信封给这类用户时,他们登录签署系统会自动触发双因素验证流程(因为账号本身已强制要求)。

创建带强制双因素的用户示例代码

// 初始化ApiClient
var apiClient = new ApiClient(basePath);
apiClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " + accessToken);

var usersApi = new UsersApi(apiClient);
var newUser = new UserCreateRequest
{
    Email = "representative@example.com",
    UserName = "John Representative",
    Password = "TempPass123!", // 建议后续引导用户自行修改初始密码
    ForceChangePassword = true,
    // 启用强制双因素认证
    TwoFactorAuthentication = new TwoFactorAuthentication
    {
        Required = "true",
        Methods = new List<string> { "email", "sms" } // 指定允许的双因素验证方式
    }
};

// 执行用户创建操作
var createdUser = usersApi.Create(accountId, newUser);

发送信封给A组用户时,只需将其作为普通签署者添加即可——由于账号已强制双因素,系统会自动要求他们完成验证后才能登录签署:

var signerA = new Signer
{
    Email = createdUser.Email,
    Name = createdUser.UserName,
    RecipientId = "1",
    ClientUserId = null, // 留空表示使用DocuSign账号登录签署
    RoutingOrder = "1"
};

二、B组(客户):无需账号的访客签署配置

对于B组客户,我们采用访客签署模式,不需要他们创建DocuSign账号,而是通过短信验证码、邮箱链接验证等轻量化方式完成身份校验后直接签署。

配置B组签署者的示例代码

这里以短信认证为例,你也可以根据需求换成电话语音认证、知识问答(KBA)等方式:

var signerB = new Signer
{
    Email = "customer@example.com",
    Name = "Jane Customer",
    RecipientId = "2",
    ClientUserId = "unique_customer_123", // 必填,用于标识访客签署者的唯一ID
    RoutingOrder = "2",
    // 配置短信认证规则
    AuthenticationRequirements = new AuthenticationRequirements
    {
        AuthenticationMethod = "sms",
        SmsAuthentication = new SmsAuthentication
        {
            SenderProvidedNumbers = new List<string> { "+1234567890" } // 预存的客户手机号
        }
    }
};

将两组签署者整合到信封中并发送:

var envelopeDefinition = new EnvelopeDefinition
{
    EmailSubject = "请签署这份合作文档",
    Documents = new List<Document> { /* 这里传入你的文档对象 */ },
    Recipients = new Recipients
    {
        Signers = new List<Signer> { signerA, signerB }
    },
    Status = "sent" // 标记信封为待发送状态
};

var envelopesApi = new EnvelopesApi(apiClient);
var envelopeSummary = envelopesApi.CreateEnvelope(accountId, envelopeDefinition);

关键注意点

  • 给A组用户创建账号时,务必确保TwoFactorAuthentication.Required设为"true",否则无法触发强制双因素验证。
  • B组签署者的ClientUserId必须唯一,这是区分访客签署和账号签署的核心标志,留空则会默认走账号登录流程。
  • 可以灵活调整B组的认证方式,比如用email认证(发送验证链接到客户邮箱),只需修改AuthenticationMethod和对应的配置项即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:35:19