powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi Rest Client + SSL
9 сообщений из 59, страница 3 из 3
Delphi Rest Client + SSL
    #39886861
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010
X-Cite, sql2012, V.Borzov
ЧЗ авторизовал на тестовом стенде и все права я себе назначил как в инструкции.
V.Borzov сталкивались с таким? Как побороть?

Я в тестовый стенд пока получал доступ, освоился в песочнице, а там права у юзера полные, поэтому с правами не заморачивался. Возможно, придется, когда надо будет создавать дополнительных пользователей.
И еще вопрос по песочнице - как проверить, может нам уже дали доступ, просто попробовать авторизоваться?

Ну да. Там еще есть кнопка "проверить статус регистрации"
Весь алгоритм такой же как с тестовым стендом, другой IP не надо в hosts прописывать как я понимаю?
Возможно мы уже авторизованы в песочнице, потому что когда запрашивал доступ к тестовому стенду, техподдержка ЧЗ сначала ответила что дали доступ к песочнице
В песочницу мы входим с уже готовым УКЭП, ничего руками создавать не надо нам. Надо лишь создать адреса своей деятельности самостоятельно (адреса торговых точек), по списку доступных. Поставщики или другие аптечники, кто зарегистрировался там, уже все видны, и с ними можно взаимодействовать, как будто это рабочий контур.

Далее Вам целесообразно перейти в форум ЧЗ, думаю.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886894
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov, еще раз огромное спасибо, очень выручаете!
Подскажите пожалуйста адрес форума ЧЗ - не могу найти
И еще по Песочнице ответьте пожалуйста! Где там кнопка "проверить регистрацию", в упор не вижу такую!
Директор наш уде давно зарегился в Песочнице и заходит туда по УКЭП со своего компа - то есть уже могу работать с песочницей, так ведт получается, мне отдельно там региться не надо ведь? Просто с его компа получается надо будет его сертификат перенести на мой, чтобы смог работать, так?
Он мне дал Идентификатор вида 0eaafe69-cabb-40ee-b502-fcc2e3761490 - который как я понял он получил от ЧЗ
Только не могу понять - это sys_id, user_id, client_id или code получается?
В Песочнице в отличие от тестового стенда везде нужен token, вообще везде, даже для регистрации
Смотрю в инструкции как его получить

Запрос:
POST api/v1/token HTTP/1.1
Host: api.sb.mdlp.crpt.ru
Content-Type: application/json
Cache-Control: no-cache
{
"code": "acf5c2c8-6d2c-41e5-ae75-6f98d3123d36"
"password" : "password123"
}
Получение результата:
{
"token": "64193f26-8564-49c1-b1f4-4d84880ebaa7",
"life_time": 30
}

То есть нужен code и password
То есть изначально как минимум code нам должен сообщить сам Честный знак при регистрации, так ведь получается? Иначе мы сами то никак не можем его сгенерить? Но вот пытаюсь этот запрос выполнить в Rest Client-е в браузере, в качестве code беру то, что дал диреткор. Но выдает ошибку
{
"error_description": "Ошибка при выполнении операции: поле code введено некорректно"
}
Что совсем запутался. Откуда брать то исходную инфу чтобы начать работать в песочнице? Что-то нужно получить от ЧЗ или нет?
В тестовом как оказалось не нужно было, а тут похоже что как минимум code или sys_id нужно?
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886913
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010
Подскажите пожалуйста адрес форума ЧЗ - не могу найти

http://честныйзнак.рф/forum
И еще по Песочнице ответьте пожалуйста! Где там кнопка "проверить регистрацию", в упор не вижу такую!

http://sb.mdlp.crpt.ru под большой желтой кнопкой "войти через УКЭП". Да и кнопку-то саму нажмите, может уже есть заход.

Директор наш уде давно зарегился в Песочнице и заходит туда по УКЭП со своего компа - то есть уже могу работать с песочницей, так ведь получается, мне отдельно там региться не надо ведь? Просто с его компа получается надо будет его сертификат перенести на мой, чтобы смог работать, так?

Да, под его учеткой, также крипто-про нужен. Для начала можно поставить, не покупая, там 3 месяца, кажется.
Он мне дал Идентификатор вида 0eaafe69-cabb-40ee-b502-fcc2e3761490 - который как я понял он получил от ЧЗ
Только не могу понять - это sys_id, user_id, client_id или code получается?

В качестве USER_ID будете использовать либо ID сертификата, либо его отпечаток, в качестве CLIENT_ID и CLIENT_SECRET - идентификатор клиента и секретный код учетной системы, которую Вы сами создадите там в личном кабинете в настройках. Ими будете получать токен, которым будете работать.

На форуме ЧЗ это всё бурно обсуждается сейчас. Вам срочно туда!
В Песочнице в отличие от тестового стенда везде нужен token, вообще везде, даже для регистрации
Смотрю в инструкции как его получить

Запрос:
POST api/v1/token HTTP/1.1
Host: api.sb.mdlp.crpt.ru
Content-Type: application/json
Cache-Control: no-cache
{
"code": "acf5c2c8-6d2c-41e5-ae75-6f98d3123d36"
"password" : "password123"
}
Получение результата:
{
"token": "64193f26-8564-49c1-b1f4-4d84880ebaa7",
"life_time": 30
}

То есть нужен code и password

То есть изначально как минимум code нам должен сообщить сам Честный знак при регистрации, так ведь получается? Иначе мы сами то никак не можем его сгенерить? Но вот пытаюсь этот запрос выполнить в Rest Client-е в браузере, в качестве code беру то, что дал диреткор. Но выдает ошибку
{
"error_description": "Ошибка при выполнении операции: поле code введено некорректно"
}



Нет, для резидентов рф пароль не используется. Используется цифровая подпись. Вам надо будет освоить подписание файлов.

В двух словах: обращаетесь через auth, методом Post отправив туда свои client_id,client_secret,user_id, получаете в ответ code. далее этот code надо подписать своей цифровой подписью (открепленной) и послать (она зарегистрирована в ЧЗ), и ЧЗ, если всё верно, выдает этот token вида UUID, которым можно пользоваться полчаса, используя его во всех общениях с сервером. И будем дальше использовать уже Https, до этого всё было по http
Что совсем запутался. Откуда брать то исходную инфу чтобы начать работать в песочнице? Что-то нужно получить от ЧЗ или нет?
В тестовом как оказалось не нужно было, а тут похоже что как минимум code или sys_id нужно?
Я попросил клиента (аптеку), чтобы она пообщалась с поставщиками. Один из поставщиков прислал мне штук 30 кодов, и понеслось. Далее либо между своими ООО, если имеются, кидаете туда-сюда данные, либо с кем-то из поставщиков, или кто там у вас, покупатели, либо скарифанитесь на форуме ЧЗ с кем-то и взаимодействуете.

https://Честныйзнак.рф/business/projects/medicines/ - там раздел "документы для работы с МДЛП", всё подряд скачивать и читать от корки до корки.



Удачи! Судя по всему, Вам еще много предстоит в изучении, так что начинайте делать это как можно быстрее! Времени мало.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886914
Фотография devart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010
Всем спасибо за помощь, пока в прострации, https упорно не работает. Попробовал TScHttpWebRequest от Devart - также с http работает , с https - нет, вылазит the other side has sent a failure alert [40] (см. скрин), как я понимаю обрубается все еще на уровне handshake. Видимо потому что ГОСТа нет в списке его алгоритмов (см. скрин)?
остальными настройками игрался - ставлил все что можно из свойств ignore в true - не помогает. Еще вопрос - вот я все протоколы сделал true (см. скрин) - так можно или надо какой-то один выбрать?
Код:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
var
  Request: TScHttpWebRequest;
  Response: TScHttpWebResponse;
  ResponseStr: string;
  Buf: TBytes;
  AURL: string;
  APOSTData: WideString;
begin
  AURL := 'https://api.stage.mdlp.crpt.ru/api/v1/documents/income';
  try
    Request := TScHttpWebRequest.Create(AURL);
    Response := TScHttpWebResponse.Create;
    APOSTData :='{"filter":{},"start_from":0,"count":100'+'}';
    Buf :=  StringToBytes(APOSTData);
    Request.ContentType := 'application/json';
    Request.Headers.Add('Authorization', 'token 5ca8e99b-c11a-406d-adec-90813dcea5d2');
    Request.ContentLength := Length(Buf);
    Request.WriteBuffer(Buf);
    Response := Request.GetResponse;
  finally
    showMessage(Response.ReadAsString);
    Request.Free;
    Response.Free;
end;



Что касается WinHTTP и настроек для ЧЗ
3) Настройки для Тестового стенда API
 добавить в хранилище доверенных сертификатов тестовый корневой сертификат от КриптоПро. Ссылка для загрузки
http://testca.cryptopro.ru/certsrv/certcarc.asp
 в файл hosts должна быть добавлена запись
185.196.171.27 api.stage.mdlp.crpt.ru


Настройки все были сделаны изначально как в инструкции. Если URL в WinHTTP меняешь с https на http
к примеру http://api.stage.mdlp.crpt.ru/api/v1/documents/income - работает (хотя и выдает ошибку, н озапрос обрабатывается)
иначе ошибка как вчера. Тут все же как я понимаю ошибка в настройках самого компонента, так как от сервера от ничего не успевает просто получить. То что советовали WinHttp_TLB и прочее - пока не пробовал

Если сервер поддерживает только ГОСТ алгоритм, то вы не сможете подключиться к данному серверу, так как на данный момент SecureBridge не поддерживает данный алгоритм.
В свойстве Protocols перечисляется список поддерживаемых клиентом прикладных протоколов. Сервер сам выбирает протокол который будет использовать, поэтому если в списке не будет протокола поддерживаемого сервером, вы не сможете работать с таким сервером.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886915
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov, благодарствую, реально очень помогли! Да, надо было давно начинать все это дело, сам виноват. Все время ещё отвлекают текущими проблемами, приходится в перерывах все это выяснять. Ещё если честно, до после днего была надежда, что все это отложат как с онлайн кассами на год или более, но похоже все таки хотят запускать.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39887598
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наконец удалось отправить тестовый док по https в песочнице. V.Borzov и кто работает с МДЛП подскажите пожалуйста дальше:
1. Как вы реализуете программно подписание дока сертификатом? Работаете напрямую с Crypto Pro или запускаете bat-ник как в примере ЧЗ?
авторcsptest -sfsign -sign -in <УКАЗАТЬ ПОЛНЫЙ ПУТЬ К ФАЙЛУ>doc.txt -out <УКАЗАТЬ ПОЛНЫЙ ПУТЬ К ФАЙЛУ>signed_doc.txt -my "АО Фурацилин" -detached -base64 –add
Какими инструментами это можно реализовать в Delphi (2007)?

2. Как делаете вот это
авторПеревести тело документа в Base64
Для примера я естественно взял пример из инструкции как выглядит doc.xml в Base64
авторPGRvY3VtZW50cyB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB2ZXJzaW9uPSIxLjE5Ij48cmVnaXN0ZXJfZW5kX3BhY2tpbmcgYWN0aW9uX2lkPSIzMTEiPjxzdWJqZWN0X2lkPjAwMDAwMDAwMDAwNTE3PC9zdWJqZWN0X2lkPg==

Но каков алгоритм перевода, где можно почитать? В доках ЧЗ не нашел объяснение, а на форуме меня пока не авторизовали (что само по себе капец, что там надо еще авторизоваться!). Хотя может и не капец. Когда внедряли онлайн-кассы на форуме штрих-м меня тоже так и не авторизовали, несмотря на неоднократные запросы
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39887692
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39887694
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010,

Подписывание - для начала и csptest.exe подойдет. Дальше можно изучить CAPICOM, там тоже всё просто.
Далее, если очень захочется, то можно обратиться напрямую к CryptoApi, найти к нему описание на паскале, например JwaWinCrypt.pas.

По Base64: https://ru.wikipedia.org/wiki/Base64
в Delphi можно воспользоваться стандартным модулем EncdDecd (в XE он есть).
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39898899
genok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V.Borzov
Времени мало.


вот и меня цейтнот сей настиг
послежу за темой
...
Рейтинг: 0 / 0
9 сообщений из 59, страница 3 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi Rest Client + SSL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]