使用DocuSign eSign API创建的信封为空(草稿状态)问题求助
DocuSign eSign API 信封无文档/签署人问题排查与修复
核心问题与修复方案
1. Document构造函数未使用SDK实例
你的getDocumentsFromFolder函数中,直接使用new Document()创建文档对象,但这不是DocuSign SDK提供的构造函数,导致生成的文档结构不符合API要求,无法被信封正确识别。
修复后的代码:
async function getDocumentsFromFolder(folderPath) { const files = fs.readdirSync(folderPath); const documents = []; for (const [index, file] of files.entries()) { const filePath = path.join(folderPath, file); const fileBuffer = fs.readFileSync(filePath); const fileBase64 = fileBuffer.toString('base64'); // 必须使用docusign命名空间下的Document构造函数 const document = new docusign.Document(); document.documentBase64 = fileBase64; document.name = file; document.fileExtension = path.extname(file).substring(1); document.documentId = (index + 1).toString(); documents.push(document); } return documents; }
2. 语法错误:多余的逗号导致代码解析失败
在makeEnvelope函数中,signHere1定义末尾的多余逗号会破坏代码结构,导致后续签署人、标签等配置无法正常初始化,最终信封缺少相关信息。
错误代码片段:
let signHere1 = docusign.SignHere.constructFromObject({ yPosition: '579', xPosition: '121', documentId: '1', pageNumber: '4' }), // 此处逗号多余,导致后续let语句无法正确解析
修复后:
let signHere1 = docusign.SignHere.constructFromObject({ yPosition: '579', xPosition: '121', documentId: '1', pageNumber: '4' }); // 替换为分号
额外验证点
- 确认
./docs路径下存在可读取的文件,且文件权限正常。 - 检查
fileExtension是否正确:例如test.pdf应提取为pdf,避免出现空值或错误后缀。 - 建议为
env.emailSubject设置非空内容,确保签署通知邮件展示正常。
内容的提问来源于stack exchange,提问作者Pakenas
相关产品推荐
相关产品推荐

