Войти

Настройка подписания ответа ведомства

Общая информация

В данном разделе осуществляется настройка сервиса, осуществляющего работу по подписанию ответа ведомства на заявление, и последующая отправка подписанных документов в ведомство. При подписании ответа пользователь может выбрать один из трёх вариантов согласия с полученными документами:

  1. Согласие и подписание – пользователь выражает свое полное согласие с полученными документами и подписывает их. Подписанные документы отправляются в ведомство
  2. Отправка разногласий – пользователь частично согласен с присланными документами. В этом случае он должен составить перечень разногласий, прикрепить составленный файл, подписать ответ и отправить в ведомство
  3. Отклонение – пользователь выразил свое несогласие с представленными документами. Ответ отправляется в ведомство

Основные настройки сервиса

Рисунок1.png

Атрибут Описание
Использовать сервис подписания Добавляет использование сервиса подписания в услугу
Источники для составления запроса на отправку результатов подписания
Файл первичного запроса Способ выбора файла из первичного запроса
Возможные варианты:
  • Отсутствует – файл не извлекается
  • Мнемоника файла – указывается точное совпадение мнемоники файла, извлекаемого из первичного запроса
  • Регулярное выражение для мнемоники файлов – указывается регулярное выражение для извлечения файла из первичного запроса
Мнемоника файла Точное совпадение мнемоники файла, который будет извлечён из первичного запроса. Далее, из него будет извлечена структура XML. В этой структуре будут найдены параметры, описанные в маппинге параметров, и сохранены в контекст. Далее, эти значения могут быть использованы в FTL-шаблонах, при составлении второго запроса в ведомство
Регулярное выражение Регулярное выражение, по которому будет выделен файл из ответа ведомства
Файл, созданный на основе ответа ведомства Мнемоника json-файла, сформированного в сервисе «Генерация файлов» во вкладке «Настройка процессинга заявлений», разделе «Формирование файлов на основании ответа на заявление» на основании ответа ведомства и используемого для наполнения контекста. Далее, значения из контекста могут быть использованы в FTL-шаблонах, при составлении второго запроса в ведомство
Способы подписания
ПЭП на Госуслугах Подпись, формируемая с помощью учётной записи Госуслуг. Подписание происходит прозрачно для пользователя
ПЭП на Госуслугах с подтверждением по смс То же самое что и ПЭП, но дополнительно запрашивается ввод кода, присланного пользователю через смс
УКЭП с компьютера Подписание с помощью плагина браузера
УНЭП в приложении «Госключ» Подписание в мобильном приложении Госключ
УКЭП в приложении «Госключ» Подписание в мобильном приложении Госключ
Подписание в приложении «Госключ» Подписание в мобильном приложении Госключ. Используется, если подписание было настроено ранее

Настройки каждого варианта согласия

Рисунок2.png

Для каждого из трёх вариантов согласия представлен ряд одинаковых настроек

Атрибут Описание
Идентификатор FTL шаблона для генерации запроса Идентификатор FTL шаблона для генерации запроса
FTL шаблон для генерации запроса Текст FTL шаблона, используемого для генерации запроса в ведомство
Отправлять только файлы подписи Признак отправки в ведомство только подписей к файлам. Сами файлы не отправляются
Тип пользователя Тип пользователя, используемый в маппинге параметров
Возможные варианты:
  • Все
  • Гражданин
  • Индивидуальный предприниматель
  • Организация
  • Иностранный гражданин

Используется для различного маппинга параметра при различном типе пользователя

Наименование параметра в запросе Наименование параметра для запроса. В FTL указывается такое же наименование параметра
Путь к тегу XML Путь для поиска значения в XML, описан на языке запросов к элементам XML-документа

Настройки передачи

Рисунок3.png

Атрибут Описание
Передавать файлы в архиве Файлы, передаваемые в ведомство, будут заархивированы
Наименование архива Название архива, которое передаётся в ведомство
Способ передачи файлов в ведомство Способ передачи файлов в ведомство
Возможные варианты:
  • МТОМ – передача происходит в теле сообщения
  • FTP – передача происходит через файловое хранилище
  • Автоматически по размеру – выбор способа отправки выбирается автоматически, в зависимости от размера вложения. Если размер меньше или равен 3,379 мб - отправка МТОМ, иначе FTP
Передавать пользовательские имена файлов Актуально только при передаче архивом. Признак использования пользовательских наименований файлов при распаковке архива
Добавлять расширения файлов в названия Признак передачи файлов с расширением. Если мнемоника не содержит расширения файла, то имя файла сформируется как mnemonic.xxx, где.xxx — расширение файла
Отправлять все файлы в ведомство Признак передачи в ведомство всего перечня сформированных файлов
Не отправлять выбранные файлы Признак исключения некоторых сформированных файлов из пакета для передачи в ведомство
Задать мнемоники файлов явно Перечень мнемоник файлов, исключенных из передачи в ведомство
Регулярные выражения для мнемоник файлов Перечень регулярных выражений, определяющих исключения из перечня файлов отправки для отправки в ведомство
Разархивировать файлы в ответе ведомства Признак того, что полученный архив с файлами от ведомства будет разархивирован. Заявление будет переведено в ошибочный статус, если ведомство отправит файлы, которые не являются архивами
Способ маршрутизации Выбор способа маршрутизации СМЭВ
Идентификатор FTL шаблона для преобразования ответа Имя FTL-шаблона, используемого для преобразования полученного ответа
FTL шаблон для преобразования ответа Текст FTL-шаблона, используемого для преобразования ответа

Настройки отмены

Данная настройка есть только у варианта согласия «Отклонение»

Рисунок4.png

Атрибут Описание
Действие при отклонении подписания Восприятие системой действий пользователя по отклонению подписания
Возможные значения:
  • Отклонение подписания – отклонение пользователем воспринимается системой как отказ от подписания. Работу в рамках заявления можно продолжить
  • Отмена заявления – отклонение пользователем воспринимается системой как отмена заявления. Работа с заявлением прекращается. В ведомство будет отправлен запрос на отмену заявления

Описание работы сервиса

Рисунок5.png

Общая схема

Общая схема работы сервиса подписания ответа представлена выше. Схема состоит из двух основных частей: подачи заявления и обработки документов, полученных от ведомства

Алгоритм работы сервиса

После подачи заявления пользователем на шагах 1—3, ведомство в ответ присылает набор документов, подлежащих изучению пользователем, и их подписанию. Вместе с пакетом документов ведомство должно передать технический статус 19. Получив 19 статус на шаге 5, портал поймёт, что необходимо представить пользователю документы на подписание. Пользователю в ЛК отобразятся кнопки вариантов согласия: согласие, разногласие, отклонение. Наличие или отсутствие того или иного варианта согласия в услуге настраивается в интерфейсе ВКУ

Изучив полученные документы, пользователь на шаге 7 в личном кабинете выбирает один из представленных вариантов согласия. Далее, происходит подписание способом, настроенным в услуге. На шаге 8 происходит генерация запроса в ведомство на основании шаблона запроса выбранного варианта согласия. На шаге 9 сгенерированный запрос через настроенный вид сведений передается в ведомство. Отправлять можно как все подписанные файлы, так и только подписи к ним

Формирование второго запроса

При формировании запроса для шага 8, используется так называемый контекст. Контекст, это документ, наполненный различными значениями в виде «ключ — значение». В качестве значений могут выступать как простые значения (числа, текст), так и целые структуры json. Для формирования второго запроса на шаге 8 как раз эти значения и используются

Наполнение контекста

Существует несколько способов наполнения контекста

Файлы первичного запроса

Любой файл, сформированный на стороне ЕПГУ, и входящий в первичный запрос на шаге 2 может быть использован как источник данных для наполнения контекста. Что бы это выполнить, необходимо:

  1. В поле «Файл первичного запроса» определить способ выделения файла из первичного запроса. Могут быть выбраны значения: «Отсутствует» – файл не извлекается, соответственно из первичного файла запроса контекст не пополняется. «Мнемоника файла» – указывается точное совпадение мнемоники файла, извлекаемого из первичного запроса. «Регулярное выражение для мнемоники файлов» – указывается регулярное выражение для извлечения файла из первичного запроса
  2. В разделе «Маппинг параметров в файле первичного запроса и запроса на отправку результатов подписания» нужного варианта согласия добавить параметры
    Путь к тегу XML, по которому находится его значение, формируется как путь, описанный на языке запросов к элементам XML-документа xPath. В представленном примере из файла первичного запроса, найденного в пункте 1, будет выбран параметр, находящийся в этом файле по пути /*[local-name()="request"]/@RouteCode, и сохранён в контекст
  3. Рисунок6.png

Файл, сформированный на основании ответа ведомства

На основании ответа ведомства на первичный запрос, то есть шагов 4—5, можно сформировать промежуточный файл формата json и всё его содержимое поместить в контекст, для последующего использования при формировании второго запроса. Что бы это выполнить, необходимо:

  1. Первоначально необходимо настроить генерацию промежуточного файла на основании ответа ведомства. Для этого необходимо перейти в меню настройки услуги в раздел «Настройка процессинга заявлений» и перейти на вкладку «Формирование файлов на основании ответа на заявление»
  2. Рисунок7.png

  3. Добавить элемент в настройки следующим образом. Поля «Имя конечного файла, отображаемого пользователю», «Мнемоника файла для хранения в террабайте», «Тег для сбора информации для генерации» заменить на свои. В полях «Источник данных для генерации», «Тип поля идентификатора файла во вложении», «Мнемоника файла» и «Регулярное выражение для мнемоники файла» указать место ответа, которое будет служить источником для генерации, тип поля, в котором будет указано выражение для выбора и сами выражения для выбора источника
  4. В настройках «Подписание ответа ведомства» указать мнемонику сгенерированного файла
  5. Рисунок8.png

  6. После получения ответа от ведомства на шаге 5 на ЕПГУ будет сгенерирован json файл. Все содержимое сформированного файла будет добавлено в контекст
  7. Рисунок9.png

Переменные контекста

На ряду указанных выше способов наполнения контекста в него автоматически добавляется ограниченный набор переменных

orderId – номер заявления

personType – тип пользователя, получающего услугу

sendDateTime – текущие дата и время

signFileList – список прикреплённых документов

filePairs – список подписанных документов с подписями

Формирование второго запроса

Генерация второго запроса осуществляется на основе FTL шаблона. При генерации второго запроса при помощи FTL – шаблона можно использовать все переменные, хранящиеся в контексте

Простые переменные вызываются с помощью знака доллара $

Для обработки значений (конструкции #) знак доллара не нужен

Обращение к вложенным полям объектов осуществляется через точку

Работа с массивами осуществляется с помощью конструкции #list

Примеры

Наполнение контекста из файла первичного запроса

  1. Первоначальная настройка: в маппинг параметров добавить поле – routeCode и путь к тегу /*[local-name()="request"]/@RouteCode
  2. На стороне ЕПГУ был сформирован файл первичного запроса вида:
  3. Рисунок10.png

  4. В контекст добавится переменная routeCode = MEG12456
  5. В FTL шаблоне можно использовать конструкцию <tns:request xmlns:tns="urn://minenergoepgu/2.0.3" RouteCode="${routeCode}">
  6. Итоговый запрос будет иметь вид:
  7. Рисунок11.png

Наполнение контекста из файла, сформированного на основании ответа ведомства

  1. В настройках услуги в разделе «Настройки процессинга заявлений» на вкладке «Формирование файлов на основании ответов ведомства» добавить генерацию файла в формате json
  2. После получения ответа на первичный запрос будет сформирован соответствующий файл
  3. Если ответ ведомства имеет вид:

    Рисунок12.png

    То в контекст будет добавлен объект вида:

    Рисунок13.png

  4. Обращение вида ${changeOrderInfo.orderId.pguId} внутри FTL шаблона даст результат 2929246605

Обращение к массивам

Если необходимо обратиться к элементам, которые находятся в массиве, то необходимо использовать конструкцию обработки цикла:

Рисунок14.png

  1. В контекст был добавлен объект вида:
  2. Рисунок15.png

  3. В FTL шаблоне можно использовать конструкцию:
  4. Рисунок16.png

  5. В итоговом документе получим:
  6. Рисунок17.png

Наполнение контекста переменными

Для добавления значений этих переменных в итоговый второй запрос применяются следующие конструкции:

<tns:OrderId>${orderId?c}</tns:OrderId>

<#if personType="PERSON_LIGHT" || personType="PERSON" || personType="PERSON_CONFIRMED">

Так как происходит обработка значения (конструкция #), а не вывод, то знак доллара не нужен

<tns:signContractDate>${sendDateTime}</tns:signContractDate>

Переменная signFileList заполнена массивом значений о файлах

Каждый элемент имеет следующие поля:

Поле Тип Обращение Назначение
ID string ${signFile.fileId} Уникальный идентификатор вложения
fileName string ${signFile.fileName} Имя файла документа
Number string ${signFile.number} Номер документа по порядку
URL string ${signFile.mnemonic} Мнемоника
Type string ${signFile.mimeType} MIME-тип контента

Следующий код в FTL-шаблоне:

Рисунок18.png

Даст следующий результат:

Рисунок19.png

Переменная filePairs заполнена массивом пар значений о файле и его подписи следующего формата:

filePairs[i].left – левая часть пары содержит информацию о файле

filePairs[i].right – правая часть пары содержит информацию о подписи файла

Каждое значение из пары имеет следующие поля:

Поле Тип Обращение Назначение
ID string ${filePair.getLeft().getFileId()}
${filePair.getRight().getFileId()}
Уникальный идентификатор вложения
fileName string ${filePair.getLeft().getFileName()}
${filePair.getRight().getFileName()}
Имя файла документа
Number string ${filePair.getLeft().getNumber()}
${filePair.getRight().getNumber()}
Номер документа по порядку
URL string ${filePair.getLeft().getMnemonic()}
${filePair.getRight().getMnemonic()}
Мнемоника
Type string ${filePair.getLeft().getMimeType()}
${filePair.getRight().getMimeType()}
MIME-тип контента

Следующий код в FTL-шаблоне:

Рисунок20.png

Даст следующий результат:

Рисунок21.png

Авторизуйтесь, чтобы оставить комментарий к статье