powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Меркурий (тот, что про сертификаты на мясо-молоко)
3 сообщений из 3, страница 1 из 1
Меркурий (тот, что про сертификаты на мясо-молоко)
    #39661379
Фотография sobolev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто может, помогите: дайте рабочий xml запроса processIncomingConsignmentRequest
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Меркурий (тот, что про сертификаты на мясо-молоко)
    #39947426
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решил новую тему не создавать...
Так же есть обсуждение тут
https://www.sql.ru/forum/1222163/integraciya-s-gis-merkuriy?hl=????????
Начал интегрировать свою ИС с этой государственной системой ветеринарных сертификатов.
Тут я расскажу об граблях на которые наступил,дабы следующие разработчики не наступили и сэкономили время.
ГИС Меркурий интегрируется по протоколу SOAP ,-Это означает,что разработчики java и с# будут иметь преимущество,
ибо в этих языках строится объектная модель по файлу описания wsdl(как и изначально задумывался SOAP)
Например есть на githube решения для одинэф...
https://github.com/mevgenym/1c_vetis.api
Но там весь xml soap код генерируется ручками...что конечно ,вызывает сочувствие.
Итак IDE java Вам "нарисовала" (Спасибо ей за это ) кучу классов по wsdl.
И первый грабли.
Нетипично для soap Меркурий требует авторизацию по http заголовку даже для доступа к файлу wsdl
https://api2.vetrf.ru:8002/platform/services/2.1/ApplicationManagementService?wsdl
Это означает,что классическая java схема для soap сервиса работать не будет
Код: java
1.
2.
3.
4.
        Service service = Service.create(
                      new URL(url),
                        new QName("http://api.vetrf.ru/schema/cdm/application/service", "ApplicationManagementServiceBindingQSService"));
   


При таком подходе Вы споткнётесь об авторизацию(а класс Service ещё не умеет авторизироваться) и сразу упадёте на этой строчке
Надо делать из заранее скачанного wsdl файла.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
 String path="/home/shop/1/ams-mercury-g2b.service_v2.1_pilot.wsdl";
        URL urlf=new File(path).toURI().toURL();
        Service service = Service.create(
                        urlf,
                      //  new URL(url),
                        new QName("http://api.vetrf.ru/schema/cdm/application/service", "ApplicationManagementServiceBindingQSService"));
   
        ApplicationManagementServicePortType websoap= service.getPort(ApplicationManagementServicePortType.class);


А вот теперь вторые грабли.
Нигде не написано ,что http авторизация имеет тип Basic туpe ..
Это
Код: html
1.
2.
 Имя пользователя:пароль 
И всё это в кодировку BASE64


Этот участок мне мозг часа на три вынес конкретно.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
       Map<String, Object> req_ctx = ((BindingProvider)websoap).getRequestContext();
     req_ctx.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, url);
        Map<String, List<String>> headers = new HashMap<String, List<String>>();
          //  headers.put("Authorization", Collections.singletonList("Basic YmFzYWxhZXYtMjAwNDA3OjVpQzlMdjhuVGY="));
           String basicAuthPayload = "Basic " + Base64.getEncoder().encodeToString(usernameColonPassword.getBytes());
        headers.put("Authorization", Collections.singletonList(basicAuthPayload));
      
        req_ctx.put(MessageContext.HTTP_REQUEST_HEADERS, headers);
      


Когда авторизовался...там уже всё просто...У меня пока задача для розничных объектов получать и подтверждать сертификаты.
А вот как их получить в тестовое окружение?
И тут для тестового окружения помог портал
https://lk.vsdmobile.ru
Респект им.
В их кабинете можно сгенерировать для себя сертификаты,(Тестовое окружение)
(А без этого портала надо (чтоб самому себе организовать ТО ) написать дофига всего)
...
Рейтинг: 0 / 0
Меркурий (тот, что про сертификаты на мясо-молоко)
    #39947945
Andrey Menshikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
irbis_al,

Выложил библиотеку, которая используется веб-помощником vsdmbobile.ru и дополнил описание как с ней работать.
Надеюсь, будет полезным.

Ссылка на гитхабе: vetisapi

Best wishes!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Меркурий (тот, что про сертификаты на мясо-молоко)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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