FORMAT_CONVERSION_ERROR при добавлении документов Word в существующий конверт с использованием нескольких частей - PullRequest
1 голос
/ 08 января 2020

Поскольку API DocuSign имеет ограничения на максимальный размер 25 МБ на запрос, мы должны разделить создание конверта на несколько запросов, изначально конверт будет создан как черновик. Затем документы будут обновлены до того же конверта с помощью вызова обновления документов конверта.

Однако мы получаем ошибку 'FORMAT_CONVERSION_ERROR' для каждого Word do c, который я добавляю, используя запрос из нескольких частей. Документы в формате PDF могут быть успешно добавлены

 "errorDetails": {
        "errorCode": "FORMAT_CONVERSION_ERROR",
        "message": "The data could not be converted."
      }

Есть ли способ заставить его работать для многочастного запроса?

Вот шаги, которые я выполнил:

  1. Я создаю конверт (без документов) в первом вызове API POST (https://demo.docusign.net/restapi/v2/accounts/ {accountid} / envelopes)
  2. Добавление документов (как pdf, так и docx) в конверт ( составной метод) с помощью вызова API PUT для каждого документа (https://demo.docusign.net/restapi/v2/accounts/ {accountid} / envelopes / {envelopeId} / documents / {docId})
  3. В файл загружаются только файлы PDF docusign, тогда как получение ошибки 400 «FORMAT_CONVERSION_ERROR - данные не могут быть преобразованы» ошибка для загрузки файла типа docx

Я добавляю этот заголовок "Content-Disposition", "file; filename={filename};fileExtension={ext};documentId={id}"

Любое предложение / решение будет Будьте благодарны.

Данные журнала:

PUT https://demo.docusign.net:7801/restapi/v2/accounts/{myaccountid}/envelopes/{myenvelopeid}/documents/1

TraceToken: d0d9eae1-01d3-4c56-928d-da38a7ac30fc
Timestamp: 2020-01-09T08:48:52.7616114Z

Content-Type: multipart/form-data; boundary=LV-qEHBRJq6zprmD52mUZfeNsrT5alHGfkE8w
Content-Disposition: file; filename=MyTemplate.docx; fileExtension=docx; documentId=1
Content-Length: 12998
Connection: Keep-Alive
Transfer-Encoding: chunked
Authorization: bearer [omitted]
Expect: 100-continue
Host: demo.docusign.net
User-Agent: Apache-HttpClient/4.0.3(java 1.5)
X-SecurityProtocol-Version: TLSv1.2
X-SecurityProtocol-CipherSuite: ECDHE-RSA-AES256-GCM-SHA384
x-forwarded-for: 106.51.84.53

--LV-qEHBRJq6zprmD52mUZfeNsrT5alHGfkE8w
Content-Disposition: form-data; name="MyTemplate.docx"; filename="MyTemplate.docx"
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary

//Some binary data here.

--LV-qEHBRJq6zprmD52mUZfeNsrT5alHGfkE8w--

400 BadRequest
Content-Type: application/json; charset=utf-8
Content-Length: 96
X-DocuSign-TraceToken: d0d9eae1-01d3-4c56-928d-da38a7ac30fc

{
  "errorCode": "FORMAT_CONVERSION_ERROR",
  "message": "The data could not be converted."
}

Ответы [ 2 ]

0 голосов
/ 09 января 2020

Вы можете использовать многочастное кодирование MIME конверта с отдельными файлами, либо BASE64, либо закодированными, либо отправленными в двоичном формате.

Убедитесь, что вы используете двоичный формат и что весь запрос к DocuSign не превышает 25 МБ.

Загрузите и запустите версию репозитория программного обеспечения eg-03 для вашего любимого языка. Эти репозитории хранятся на github.com/docusign, они задокументированы здесь: https://developers.docusign.com/esign-rest-api/code-examples/code-example-send-binary.

В примере кода рабочий процесс # 10 показывает, как отправлять в двоичном режиме. В этом примере отправляется документ Word, поэтому вы можете заменить свой собственный, чтобы убедиться, что он работает нормально.

0 голосов
/ 08 января 2020

Несколько вещей для проверки:

  1. Это происходит с любым документом со словом или только с указанным c одним?
  2. Можете ли вы загрузить тот же документ? Документ Word напрямую в веб-приложение DocuSign, и он отлично работает?
  3. Насколько велик рассматриваемый файл? Возможно ли, что он все еще превышает 25M?
  4. Рассмотрите возможность использования двоичной передачи файлов. Вот пример кода, показывающего, как это сделать:

https://developers.docusign.com/esign-rest-api/code-examples/code-example-send-binary

...