-
Notifications
You must be signed in to change notification settings - Fork 90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Подписание входящего документа. Invalid character in the given encoding. Line 1, position 1. #87
Comments
От документа, но проблема не в этом, здесь, судя по всему, запрос неправильно сформирован. Напишите ошибку полностью, все, что есть: HTTP-код, заголовки, тело ответа. |
HTTP/1.1 100 Continue HTTP/1.1 400 Bad Request Server: nginx Date: Thu, 27 Oct 2016 06:55:38 GMT Content-Type: text/plain; charset=utf-8 Content-Length: 60 Access-Control-Allow-Origin: * X-Diadoc-ErrorCode: Http.BadRequest Can't deserialize request body into type: MessagePatchToPost |
А если посылать контент с и сигнатуру без BOM то: |
Напишите HTTP-заголовки запроса, который на сервер отправляете. |
Authorization: DiadocAuth ddauth_api_client_id=мой_апи_клиент,ddauth_token=мой_токен_авторизации |
А PostMessagePatch для неформализованных документов подходит? |
Заголовки верные, значит ошибка в передаваемых данных. Когда последний раз получили ошибку? Нужны какие-то идентификаторы, чтобы посмотреть со стороны сервера, что происходит. |
[MessageId] => b2d7e9d1-34a3-4390-bbda-f2f46ef2d6e2 |
Хм, посмотрел файлы, из 1-го комментария, base64 сам на себя не похож. По бинарной подписи у меня получилась вот такая строка:
|
Что значит "base64 сам на себя не похож"? Там недопустимые символы? И еще: там два файла в base64 - подписываемый файл и файл отсоединенной подписи? В каком проблема? И откуда взялась бинарная подпись? Мы ее вам не высылали, мы высылали detached-подпись в base64. |
Если вы используете json, то в SignedContent нужно передавать данные в виде base64 строк. И в поле Content и в поле Signature, судя по тем файлам, которые вы приложили, строки некорректные. |
Судя по документам, это как раз и есть base64, так как они содержат символы только из алфавита Base64: символы верхнего и нижнего регистра латинского алфавита, цифры от 0 до 9, символ + и символ \ base64 от Word-документа, который подписываем, получается с помощью функции php base64_encode, Почему вы решили, что передаваемые нами строки не в коде base64? Вы увидели где-то недопустимый символ? Если да, то где? |
Так, расскажите что вы хотите сделать? Похоже вы просто что-то не то делаете, зачем вы используете Receipts?
Если вам надо как получателю подписать входящий документ, то нужно использовать только Signatures |
Вот здесь написано, какие структуры и для чего используются. Receipts используется для документооборота по СФ - это только извещения и подтверждения от оператора. |
Всё заработало! Спасибо, большое, ваш совет нам очень помог! |
Отправляю на https://diadoc-api.kontur.ru/V3/PostMessagePatch
$data = json_encode(
[
'BoxId' => boxId,
'MessageId' => messageId,
'Receipts' => [
[
'ParentEntityId' => parentEntityId,
'SignedContent' => [
'Content' => fileCode,
'Signature' => fileSigCode,
],
]
]
]);
В ответ: Invalid character in the given encoding. Line 1, position 1.
Подскажите 'ParentEntityId' я его получают с помощью метода https://diadoc-api.kontur.ru/V3/GetMessage. Я его должен брать от оригинала документа или от detached подписи?
Файлы, которые посылаю : https://www.sendspace.com/filegroup/IfKTDFj4CQRkxOrGs3OSNw
Подскажите, пожалуйста в чём проблема?
The text was updated successfully, but these errors were encountered: