0

Любая помощь очень ценится!Rails 4 HTTParty Docusign api invalid base 64 string

Я посылаю запрос пост конверт с помощью HTTParty к апи DocuSign и получаю сообщение об ошибке, которое утверждает: The input is not a valid Base-64 string as it contains a non-base 64 character

Вот мой HTTP пост:

req = HTTParty.post(baseUrl, body: { "status": "sent", "emailSubject": "Send this already", "documents": [{ "documentId": "1", "name": "test.pdf" }], "recipients": { "signers": [{ "name": "joe dirt", "email": "[email protected]", "recipientId": "1", "routingOrder": "1", "tabs": { "signHereTabs": [{ "xPosition": "150", "yPosition": "200", "documentId": "1", "pageNumber": "2" }], } }] } }.to_json, headers: { "Content-Type" => "application/json", "Content-Transfer-Encoding" => "Base64", 'X-DocuSign-Authentication' => '{ "Username" : "blah-blahblah-blah-blah-blah", "Password" : "blah", "IntegratorKey" : "blah-blah-blah-blah-blah" }' }, :debug_output => $stdout)

отладчик выплевывает следующие:

"HTTP/1.1 400 Bad Request\r\n" "Cache-Control: no-cache\r\n" "Pragma: no-cache\r\n" "Content-Length: 226\r\n" "Content-Type: application/json; charset=utf-8\r\n" "Expires: -1\r\n"

Это полный запрос показан на моем сервере:

<- "POST /restapi/v2/accounts/1906554/envelopes HTTP/1.1\r\nAccept: application/json\r\nContent-Type: application/json\r\nX-Docusign-Authentication: { \n \"Username\" : \"blah-blah-blah-b;ah-blah\", \n \"Password\" : \"blah\", \n \"IntegratorKey\" : \"blah-blah-blah-blah-blah\" \n }\r\nConnection: close\r\nHost: demo.docusign.net\r\nContent-Length: 394\r\n\r\n" <-"{ \"status\":\"sent\", \"emailSubject\":\"Example of one recipient, type signer\", \"documents\":[{ \"documentId\":\"1\", \"name\":\"RE Ally MNDA_MAster.pdf\", \"documentBase64\":\"base64 document bytes...\"}], \"recipients\":{\"signers\":[{ \"name\":\"joe dirt\", \"email\":\"[email protected]\", \"recipientId\":\"1\", \"routingOrder\":\"1\", \"tabs\":{ \"signHereTabs\"[{ \"xPosition\":\"150\", \"yPosition\":\"200\", \"documentId\":\"1\", \"pageNumber\":\"2\" }] } }] }"

За их документации, я получаю успешную заявку на мой BaseUrl, когда я делаю так:

HTTParty.get('https://demo.docusign.net/restapi/v2/login_information', headers: { 
       'Accept' => 'application/json', 
       'Content-Type' => 'application/json', 
       'X-DocuSign-Authentication' => '{ 
       "Username" : "blah-bla-blah-bla-blah", 
       "Password" : "blahword1", 
       "IntegratorKey" : "blah-blah-blah-blah-blah" 
       }' 
       } 
     ) 

This is how docusign is expecting my post to look

+0

Вышеуказанный объект - это целый объект JSON? –

+0

Ну, должно быть. Как вы можете видеть, я добавил функцию .to_json в свой запрос httparty для преобразования. Я добавлю, как выглядит запрос на моем сервере. –

+0

Почему вы используете значение '' '' для 'X-DocuSign-Authentication'? Пожалуйста, проверьте '{ « Имя пользователя »:« blah-blahblah-blah-blah-blah », « Пароль »:« бла », « IntegratorKey »:« blah-blah-blah-blah-blah » } '' –

ответ

0

Ни одно из предлагаемых решений действительно не работало для меня, но я смог получить запрос на отправку через свои шаблоны, изменив код на моем теле. Не знаю, почему процесс «Быстрый старт» не работал для меня.

body: { 
      "emailSubject": "DocuSign API call - Request Signature - Boom", 
      "templateId": "blahblah-blah-blah-blah-blahblah", 
      "templateRoles": [{ 
       "email": "[email protected]", 
       "name": "la Leunblahg", 
       "title": "El Hefe", 
       "roleName": "Employee" 
      }], 
      "status": "sent" 
     }.to_json 
1

Вы устанавливаете "Content-Transfer-Encoding" => "Base64" в своих заголовках. Удалите это.

+0

Если я удалю эту строку, я получаю сообщение об ошибке «Ввод не является допустимой строкой Base-64, так как он содержит не-базовый символ 64, более двух символов заполнения или недопустимого символа среди прописных символов. \ "\ r \ n}" ' –

+0

Андрей прав. Тип содержимого - json. Только одно поле в объекте json закодировано в base64./полученные заголовки и данные из функции ведения журнала DocuSign. –

+0

Я добавил ссылку на документацию docusign, а также добавил полный запрос на отправку вместе с успешным логином для базы данных. y аутентификация, кажется, проходит очень хорошо, это когда она попадает в тело, которое, как я чувствую, возникает, когда у меня возникают проблемы –