如何通过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
相关产品推荐
相关产品推荐

