2013-11-26 2 views
0

Я пытаюсь запросить подпись с помощью API DocuSign через Javascript. Ниже представлен многий запрос, который я отправляю. Проблема в том, что я получаю сообщение об ошибке: «Конверт не завершен. Полный конверт требует документов, получателей, вкладок и строки темы. Отсутствует определение конверта». Понятно, что я включаю в свой запрос «envelopeDefinition» xml, и я уверен, что все необходимые элементы есть. Любое руководство будет высоко оценено.Signature Request DocuSign Request - «Определение конверта отсутствует»

--BOUNDARY-- 
Content-Type: application/xml 
Content-Disposition: form-data 

<envelopeDefinition xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.docusign.com/restapi"><emailSubject>Test Subject</emailSubject><documents><name>document.pdf</name><documentId>1</documentId></documents><recipients><signers><tabs><signHereTabs><pageNumber>1</pageNumber><documentId>1</documentId><xPosition>100</xPosition><yPosition>100</yPosition></signHereTabs></tabs><routingOrder>1</routingOrder><recipientId>1</recipientId><name>My Name</name><email>[email protected]</email></signers></recipients><status>sent</status></envelopeDefinition> 

--BOUNDARY-- 
Content-Type: application/pdf 
Content-Disposition: file; filename="document.pdf"; documentId=1 

[document bytes go here] 

--BOUNDARY-- 

Кроме того, следует упомянуть, что я использую Msxml2.XMLHTTP.

ответ

0

Не видя заголовков запросов, я не могу сказать абсолютно точно, какова ваша проблема. Но вот несколько предложений:

Во-первых, кажется, что вашему телу XML-запроса не хватает пары элементов.

  • Добавить < документ > элемента в качестве дочернего элемента < документов > (т.е. инкапсулирование имени и documentId элементов для документа)

  • Добавить в <signHereTab> элемент как дочерний элемент <signHereTabs> (т.е. инкапсулирования PageNumber, documentId, xPosition и yPosition элементы для вкладки)

После того, как вы сделаете эти дополнения к XML, ваш запрос должен больше похожа на это:

POST https://demo.docusign.net/restapi/v2/accounts/201105/envelopes HTTP/1.1 

X-DocuSign-Authentication: {"Username":"USERNAME","Password":"PASSWORD","IntegratorKey":"INTEGRATOR_KEY"} 
Content-Type: multipart/form-data; boundary=BOUNDARY 
Accept: application/xml 
Host: demo.docusign.net 
Content-Length: 23414 
Expect: 100-continue 
Connection: Keep-Alive 

--BOUNDARY 
Content-Type: application/xml 
Content-Disposition: form-data 

<envelopeDefinition xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.docusign.com/restapi"> 
    <emailSubject>Test Subject</emailSubject> 
    <documents> 
     <document> 
     <name>document.pdf</name> 
     <documentId>1</documentId> 
     </document> 
    </documents> 
    <recipients> 
     <signers> 
      <tabs> 
       <signHereTabs> 
        <signHereTab> 
        <pageNumber>1</pageNumber> 
        <documentId>1</documentId> 
        <xPosition>100</xPosition> 
        <yPosition>100</yPosition> 
        </signHereTab> 
       </signHereTabs> 
      </tabs> 
      <routingOrder>1</routingOrder> 
      <recipientId>1</recipientId> 
      <name>My Name</name> 
      <email>[email protected]</email> 
     </signers> 
    </recipients> 
    <status>sent</status> 
</envelopeDefinition> 

--BOUNDARY 
Content-Type: application/pdf 
Content-Disposition: file; filename="document.pdf"; documentid="1" 

[document bytes removed] 

--BOUNDARY-- 

Во-вторых, похоже, что вы используете g термин ГРАНИЦ в качестве вашего разделителя детали в запросе - но вы неправильно используете его таким образом во всех трех местах: --BOUNDARY--. Как показано в примере запросе, что я включил выше, первых два экземпляр из разделителя должен иметь только - (дефис) предшествуют слово ГРАНИЦЫ, как это:

--BOUNDARY 

Только окончательного возникновение из разделителя (в самом конце запроса) должны иметь как начальные и конечные дефисы:

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