使用DocuSign API下载已签署文档报错求助
使用DocuSign API下载已签署文档的代码修正方案
你的代码存在几个明确问题导致运行出错,以下是问题点和修正后的完整方案:
问题点:
- 方法调用末尾多了一个逗号(
,)),属于语法错误 - 声明了
encoding参数但未传入GetDocument方法 - 直接调用接口
IEnvelopesApi的方法,正确做法是实例化EnvelopesApi对象后通过实例调用 - 缺少返回值接收和文档保存的逻辑
envelopeId设为"1"大概率是无效测试值,需要替换为真实有效的信封ID
修正后的完整代码:
using DocuSign.eSign.Api; using DocuSign.eSign.Client; using System.IO; // 配置认证信息(必须先获取有效的OAuth访问令牌) var config = new Configuration(); config.AddDefaultHeader("Authorization", "Bearer YOUR_ACCESS_TOKEN"); // 实例化EnvelopesApi对象 var envelopesApi = new EnvelopesApi(config); // 填写有效的参数值 string accountId = "60194631-4f3e-4684-ba08-3304476b12f3"; string envelopeId = "YOUR_VALID_ENVELOPE_ID"; // 替换为实际已签署信封的ID string documentId = "3"; string encoding = "base64"; try { // 调用GetDocument方法获取文档字节数组 byte[] documentBytes = envelopesApi.GetDocument(accountId, envelopeId, documentId, encoding); // 将字节数组保存为本地文件 File.WriteAllBytes("signed_document.pdf", documentBytes); } catch (ApiException ex) { // 捕获并打印API错误信息,便于排查 Console.WriteLine($"API错误: {ex.Message}"); Console.WriteLine($"错误详情: {ex.ErrorContent}"); }
额外注意事项:
- 替换
YOUR_ACCESS_TOKEN为通过DocuSign OAuth流程获取的有效访问令牌 - 确认
documentId对应信封中存在的文档,可通过envelopesApi.ListDocuments(accountId, envelopeId)接口获取所有文档的ID列表 - 确保信封状态为已完成(
completed),否则无法下载已签署版本
内容的提问来源于stack exchange,提问作者safern
相关产品推荐
相关产品推荐

