如何使用DocuSign Apex Toolkit获取信封内所有文档的PDF字节流?
使用DocuSign Apex Toolkit获取信封内所有文档的PDF字节流
要实现和eSign REST API等效的获取信封文档功能,你可以通过DocuSign Apex Toolkit的DsApi类直接调用底层Envelopes API方法,以下是具体实现和示例代码:
核心逻辑
- 初始化Apex Toolkit的API客户端,配置认证与环境信息
- 调用
listDocuments接口获取信封内所有文档的清单 - 遍历文档清单,调用
getDocument接口逐个提取PDF字节流
示例代码
// 初始化DocuSign API客户端 DsApi dsApi = new DsApi(); dsApi.setOAuth2ClientId('你的集成密钥'); // 替换为实际DocuSign集成密钥 dsApi.setBasePath('https://demo.docusign.net/restapi'); // 测试环境用demo,生产环境替换为https://www.docusign.net/restapi // 目标信封ID String targetEnvelopeId = '要查询的信封ID'; try { // 获取信封文档列表信息 EnvelopeDocumentsInformation docsInfo = dsApi.EnvelopesApi.listDocuments('你的DocuSign账户ID', targetEnvelopeId); // 遍历所有文档 for (EnvelopeDocument doc : docsInfo.getEnvelopeDocuments()) { // 可选:跳过证书类文档 if (doc.getType() == 'certificate') { continue; } // 获取文档PDF字节流 Blob docPdfBlob = dsApi.EnvelopesApi.getDocument('你的DocuSign账户ID', targetEnvelopeId, doc.getDocumentId()); // 示例:将字节流保存为Salesforce附件 Attachment newAttachment = new Attachment(); newAttachment.Name = doc.getName() + '.pdf'; newAttachment.Body = docPdfBlob; newAttachment.ParentId = '关联的Salesforce记录ID'; // 替换为实际记录ID insert newAttachment; } } catch (DsApiException ex) { System.debug('获取文档出错: ' + ex.getMessage()); }
注意事项
- 确保已完成DocuSign Apex Toolkit的OAuth认证配置,当前用户拥有目标信封的访问权限
- 替换代码中所有占位符为实际业务值
- 生产环境需调整
basePath为正式域名 - 可根据需求添加文档过滤逻辑,比如仅提取已签署完成的文档
内容的提问来源于stack exchange,提问作者Staci Bates
相关产品推荐
相关产品推荐

