Docusignapi Docusign-打开通过Rest API下载的PDF时出错

Docusignapi Docusign-打开通过Rest API下载的PDF时出错,docusignapi,Docusignapi,使用RESTAPI,我试图从一个完整的信封中取出文档。我的头正在使用X-DocuSign-Authentication EnvelopesApi ap = new EnvelopesApi(); Encoding encode = System.Text.Encoding.GetEncoding("utf-8"); EnvelopeDocumentsResult edr = ap.ListDocuments((AccountId, "xxx-xx-xxx"); List<Envelop

使用RESTAPI,我试图从一个完整的信封中取出文档。我的头正在使用X-DocuSign-Authentication

EnvelopesApi ap = new EnvelopesApi();
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");

EnvelopeDocumentsResult edr = ap.ListDocuments((AccountId, "xxx-xx-xxx");

List<EnvelopeDocument> docs = edr.EnvelopeDocuments;

foreach(EnvelopeDocument doc in docs)
{  
   Stream stream1 = ap.GetDocument(AccountId, "xxx-xx-xxx", doc.DocumentId);
   StreamReader reader = new System.IO.StreamReader(stream1, encode);
   var data = reader.ReadToEnd();
   StreamWriter writer = new StreamWriter(@"C:\mysigneddoc.pdf");
   writer.Write(data);
   writer.Close();
}
EnvelopesApi ap=新的EnvelopesApi();
Encoding encode=System.Text.Encoding.GetEncoding(“utf-8”);
EnvelopedDocumentsResult edr=ap.ListDocuments((账户ID,“xxx xx xxx”);
列表文档=edr.Enveloped文档;
foreach(将文件封装在文件中)
{  
stream1=ap.GetDocument(AccountId,“xxx xx xxx”,doc.DocumentId);
StreamReader=新系统.IO.StreamReader(stream1,编码);
var data=reader.ReadToEnd();
StreamWriter writer=新的StreamWriter(@“C:\mysigneddoc.pdf”);
writer.Write(数据);
writer.Close();
}
当我试图打开已完成的pdf时,我得到一个错误,说明

签名者身份尚未验证


你知道我哪里会出错吗?

请查看API配方,从信封下载文档

var ap=new EnvelopesApi();
var edr=应付账款清单文件((账户ID,“xxx xx xxx”);
列表文档=edr.Enveloped文档;
foreach(将文件封装在文件中)
{
//GetDocument()API调用返回一个MemoryStream
var docStream=(MemoryStream)信封API.GetDocument(accountId,信封ID,doc.DocumentId);
//让我们将文档保存到本地文件系统
filePath=@“C:\temp\”+Path.GetRandomFileName()+“.pdf”;
fs=新文件流(filePath,FileMode.Create);
Seek(0,SeekOrigin.Begin);
docStream.CopyTo(fs);
fs.Close();
}
您还可以使用api将组合文档下载到信封中。您无需查询每个文档


  • 组合PDF
将字符串作为documentId传递

检索包含所有文档和证书的组合内容的PDF

string envelopeId=“XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX”;
字符串accountId=“XXXXXX”;
var envApi=新信封API();
//GetDocument()API调用返回一个MemoryStream
var docStream=(MemoryStream)envApi.GetDocument(accountId,信封ID,“组合”);
//让我们将文档保存到本地文件系统
字符串filePath=@“C:\temp\”+Path.GetRandomFileName()+“.pdf”;
var fs=new FileStream(filePath,FileMode.Create);
Seek(0,SeekOrigin.Begin);
docStream.CopyTo(fs);
fs.Close();

  • ZIP文件
将字符串存档作为documentId传递

检索包含所有PDF文档、证书和用于语音身份验证的任何.WAV文件的ZIP存档

EnvelopesApi ap = new EnvelopesApi();
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");

EnvelopeDocumentsResult edr = ap.ListDocuments((AccountId, "xxx-xx-xxx");

List<EnvelopeDocument> docs = edr.EnvelopeDocuments;

foreach(EnvelopeDocument doc in docs)
{  
   Stream stream1 = ap.GetDocument(AccountId, "xxx-xx-xxx", doc.DocumentId);
   StreamReader reader = new System.IO.StreamReader(stream1, encode);
   var data = reader.ReadToEnd();
   StreamWriter writer = new StreamWriter(@"C:\mysigneddoc.pdf");
   writer.Write(data);
   writer.Close();
}
var envApi=new EnvelopesApi();
//GetDocument()API调用返回一个MemoryStream
var docStream=(FileStream)envApi.GetDocument(accountId,信封ID,“归档”);
//让我们将文档保存到本地文件系统
字符串filePath=@“C:\temp\”+Path.GetRandomFileName()+“.zip”;
var fs=new FileStream(filePath,FileMode.Create);
Seek(0,SeekOrigin.Begin);
docStream.CopyTo(fs);
fs.Close();

你编写的代码很棒。这就成功了。我想知道为什么使用StreamReader和StreamWriter不起作用。