2017-02-22 3 views
1

С помощью REST api я пытаюсь получить документы из завершенного конверта. Мой заголовок использует X-DocuSign-аутентификацию.Docusign - Ошибка открытия PDF-файла, загруженного через Rest API

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(); 
} 

Когда я пытаюсь открыть заполненную PDF, я получаю ошибку о том, что

личность подписанты не была проверена.

Любые идеи, в которых я могу ошибиться?

ответ

1

Пожалуйста, посмотрите рецепт API here, чтобы загрузить документы из конверта.

var ap = new EnvelopesApi(); 
var edr = ap.ListDocuments((AccountId, "xxx-xx-xxx"); 
List<EnvelopeDocument> docs = edr.EnvelopeDocuments; 

foreach(EnvelopeDocument doc in docs) 
{ 
    // GetDocument() API call returns a MemoryStream 
    var docStream = (MemoryStream)envelopesApi.GetDocument(accountId, envelopeId, doc.DocumentId); 
    // let's save the document to local file system 
    filePath = @"C:\temp\" + Path.GetRandomFileName() + ".pdf"; 
    fs = new FileStream(filePath, FileMode.Create); 
    docStream.Seek(0, SeekOrigin.Begin); 
    docStream.CopyTo(fs); 
    fs.Close(); 
} 

Вы также можете скачать комбинированные документы в конверт с помощью GetEnvelopeDocuments API. Вы не обязаны запрашивать каждый отдельный документ.


  • Комбинированный PDF

Передать строку комбинированную как documentId.

Извлечь PDF-файл, содержащий комбинированное содержимое всех документов и сертификата.

string envelopeId = "XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"; 
string accountId = "XXXXXX"; 
var envApi = new EnvelopesApi(); 

// GetDocument() API call returns a MemoryStream 
var docStream = (MemoryStream)envApi.GetDocument(accountId, envelopeId, "combined"); 
// let's save the document to local file system 
string filePath = @"C:\temp\" + Path.GetRandomFileName() + ".pdf"; 
var fs = new FileStream(filePath, FileMode.Create); 
docStream.Seek(0, SeekOrigin.Begin); 
docStream.CopyTo(fs); 
fs.Close(); 

  • ZIP файл

Передайте архив строка в documentId

Получить архив ZIP, содержащий все из Документы PDF, сертификат и любые файлы .WAV, используемые для аутентификации голоса.

var envApi = new EnvelopesApi(); 

// GetDocument() API call returns a MemoryStream 
var docStream = (FileStream)envApi.GetDocument(accountId, envelopeId, "archive"); 
// let's save the document to local file system 
string filePath = @"C:\temp\" + Path.GetRandomFileName() + ".zip"; 
var fs = new FileStream(filePath, FileMode.Create); 
docStream.Seek(0, SeekOrigin.Begin); 
docStream.CopyTo(fs); 
fs.Close(); 
+1

Вы большой CodingDawg. Это сделал трюк. Интересно, почему использование StreamReader и StreamWriter не сработало. –

Смежные вопросы