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

如何通过DocuSign C# SDK指定打开Add Fields视图或Prepare视图

DocuSign C# SDK:指定Add Fields/Prepare视图与一键发送配置

核心问题拆解

你提到的「指定打开Add Fields视图还是Prepare视图」,是通过生成信封编辑视图URL时的参数控制的,和信封的Status参数(控制是否自动发送)是两个独立的配置项。下面分点说明具体实现:


1. 区分Add Fields与Prepare视图

DocuSign的编辑视图分为两种模式,对应你的需求:

  • Add Fields视图(字段添加/标记模式):让用户为文档添加签名、填写框等字段
  • Prepare视图(信封详情编辑模式):让用户确认收件人信息、邮件主题等信封基础配置,再手动发送

配置方式(C# SDK)

要生成对应视图的URL,需先创建草稿信封(Status设为Created),再调用EnvelopesApi.CreateConsoleView方法,通过ConsoleViewRequest的参数控制视图类型:

示例:生成Add Fields视图URL
// 初始化DocuSign客户端
var apiClient = new ApiClient("https://demo.docusign.net/restapi"); // 生产环境替换为正式域名
apiClient.Configuration.DefaultHeader.Add("Authorization", $"Bearer {yourAccessToken}");
var envelopesApi = new EnvelopesApi(apiClient);

// 创建草稿信封
var envelopeDef = new EnvelopeDefinition
{
    EmailSubject = "请签署合作协议",
    Status = "Created", // 草稿状态,不自动发送
    Documents = new List<Document>
    {
        new Document
        {
            DocumentBase64 = Convert.ToBase64String(File.ReadAllBytes("agreement.pdf")),
            Name = "合作协议",
            DocumentId = "1"
        }
    },
    Recipients = new Recipients
    {
        Signers = new List<Signer>
        {
            new Signer { Email = "signer@yourdomain.com", Name = "张三", RecipientId = "1" }
        }
    }
};
var envelopeSummary = envelopesApi.CreateEnvelope(yourAccountId, envelopeDef);

// 生成Add Fields视图URL
var viewReq = new ConsoleViewRequest
{
    ReturnUrl = "https://your-crm-app.com/after-edit", // 编辑完成后跳转地址
    EnvelopeId = envelopeSummary.EnvelopeId,
    EnableTagging = true, // 开启字段添加模式(关键参数)
    RecipientId = "1" // 指定为该收件人配置字段
};
var editViewUrl = envelopesApi.CreateConsoleView(yourAccountId, viewReq).Url;
// 将用户重定向到editViewUrl,即可进入Add Fields视图
示例:生成Prepare视图URL

只需将上述代码中的EnableTagging设为false,用户进入视图后就会看到信封详情编辑界面,可调整收件人、邮件内容后手动发送。


2. 关于「One Click Send」与「One Click Options」

  • 「One Click Send」对应信封Status参数:你的猜测是对的,当Status设为Sent时,信封会自动发送,无需用户进入任何视图操作。
  • 「One Click Options」的作用:这是Dynamics集成插件的封装参数,对应一键发送时的附加行为,比如:
    • 是否跳过编辑流程直接发送
    • 是否自动同步CRM字段到DocuSign信封
    • 发送完成后返回CRM的指定页面

在自定义服务端逻辑中,你不需要依赖这个参数,只要确保信封的所有必填项(文档、收件人、签名字段)都已预先配置,直接设置Status = "Sent"即可实现一键自动发送:

示例:一键自动发送信封
// 初始化客户端同上
var envelopeDef = new EnvelopeDefinition
{
    EmailSubject = "请签署合作协议",
    Status = "Sent", // 自动发送(关键参数)
    Documents = new List<Document>
    {
        // 文档配置同上
    },
    Recipients = new Recipients
    {
        Signers = new List<Signer>
        {
            new Signer
            {
                Email = "signer@yourdomain.com",
                Name = "张三",
                RecipientId = "1",
                // 预配置签名字段,避免用户手动添加
                Tabs = new Tabs
                {
                    SignHereTabs = new List<SignHere>
                    {
                        new SignHere { DocumentId = "1", PageNumber = "1", XPosition = "150", YPosition = "200" }
                    }
                }
            }
        }
    }
};
// 创建并自动发送信封
var envelopeSummary = envelopesApi.CreateEnvelope(yourAccountId, envelopeDef);

关键注意事项

  • 若要让用户进入编辑视图,信封必须设为Created(草稿)状态,不能是Sent
  • 预配置签名字段时,需确保位置、文档ID等参数准确,否则自动发送会失败
  • 生产环境需替换DocuSign API的基础路径为https://www.docusign.net/restapi

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:53:26