如何使用DocuSign Node.js SDK选取模板部分文档发送电子签名请求
如何使用DocuSign Node.js SDK选择模板中的部分文档发送签名请求
核心实现思路是使用DocuSign的*复合模板(Composite Template)*机制,普通的模板创建信封接口默认会加载模板内全部文档,无法筛选。
前置准备
- 调用DocuSign SDK的
templates.listDocuments接口,获取目标模板下所有文档的documentId和名称对应关系,确认你需要选用的2~3份文档的ID值。
核心实现代码
const docusign = require('docusign-esign'); // 此处省略DocuSign客户端初始化、鉴权流程,直接进入信封构造逻辑 const envelopeDefinition = docusign.EnvelopeDefinition.constructFromObject({ emailSubject: "请签署相关文件", status: "sent", // 设为sent直接发送,设为created则存为草稿 compositeTemplates: [ // 第一份需要保留的模板文档 { compositeTemplateId: "1", serverTemplates: [ { sequence: "1", templateId: "替换为你的模板ID" } ], document: { documentId: "替换为你要选用的文档1的ID", // 和模板内对应文档ID一致 name: "替换为文档1的名称", documentBase64: null // 留空自动复用模板内的原文档内容 }, inlineTemplates: [ { sequence: "2", recipients: { signers: [ { email: "签署人邮箱地址", name: "签署人姓名", roleName: "模板内预定义的签署角色名", // 必须和模板配置完全一致 recipientId: "1" } ] } } ] }, // 第二份需要保留的模板文档,结构同上 { compositeTemplateId: "2", serverTemplates: [ { sequence: "1", templateId: "替换为你的模板ID" } ], document: { documentId: "替换为你要选用的文档2的ID", name: "替换为文档2的名称", documentBase64: null }, inlineTemplates: [ { sequence: "2", recipients: { signers: [ { email: "签署人邮箱地址", name: "签署人姓名", roleName: "模板内预定义的签署角色名", recipientId: "1" } ] } } ] } // 若需要选第三份文档,按照上述结构新增对应项即可 ] }); // 调用接口发送信封 const envelopesApi = new docusign.EnvelopesApi(apiClient); const sendResult = await envelopesApi.createEnvelope("替换为你的DocuSign账户ID", { envelopeDefinition });
注意事项
该方案会自动保留模板内对应文档上预配置的所有签名标签、填写项,不需要重新配置。如果不需要保留原有标签,也可以选择先下载模板内需要的文档,再手动构造新信封上传这些文档,但该方案需要自行配置所有签名位置,仅适合无预设标签的场景。
内容的提问来源于stack exchange,提问作者Deepak
相关产品推荐
相关产品推荐

