feat: живой цикл M2M с НРД + мастер установки ключа на флешку

Инфраструктура M2M (живой обмен с НРД через ИШ):
- обработка M2MTransferResponse: ERROR(M2Mxx) → заявка Отклонена, сохранение
  ответа; INFO → ждём Decision; идемпотентность поллера
- fallback-корреляция ответов с нулевым GUID (M2M14/M2M17) по FIFO
- сырой XML ответа НРД в карточке заявки (для пересылки в ТП)
- тестовый пакет роботу приведён к эталону m2m_robot_samples (CostInfo=Yes,
  4 бумаги, IsolationStatus, DocumentSeries=сценарий); override паспорта
- редирект из теста сразу в карточку заявки

Мастер установки ключа Валидаты на флешку (admin/setup/keywizard):
- пошаговый: загрузка .7z+пароль → выбор флешки → запись → справочник
  сертификатов (CRL) → перезапуск+проверка ИШ → готово
- привилегированный воркер (bj-keymedia) в host-namespace через файл-обмен,
  bj-server остаётся в песочнице
- сохранение структуры профиля архива (spr<N>), перечисление съёмных USB

Прочее:
- пакет-доказательство для ТП НРД + форма регистрации участника M2M
- эталонные образцы робота (DOC/m2m_robot_samples)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
zuevav
2026-06-19 00:03:21 +03:00
parent 6e503433d4
commit 9737c787f9
110 changed files with 10771 additions and 1690 deletions
+58
View File
@@ -0,0 +1,58 @@
# Регистрация в справочнике участников M2M (НРД)
Закрывает блокер заявок с кодом **M2M14** — «Код ЭДО НРД отправителя
отсутствует в справочнике участников M2M». Технически наш контур (ИШ, СКЗИ,
канал, REST) работает; не хватает только регистрации нашего депозитарного
кода в справочнике сервиса МОСТ на стороне НРД.
## Что известно
| Параметр | Значение |
|-------------------------|---------------------------------------|
| Депозитарный код | `MC0413600000` |
| Тестовый контур | TEST3 (ГОСТ-криптография) |
| Период тестирования | 21.05.2026 — 01.09.2026 |
| Счёт (account_id) | `HL171004001C` |
| Раздел (section_id) | `36MC0413600000F00` |
## Что нужно заполнить (юридические реквизиты организации)
В файле `M2MTransferParticipantForm.example.xml` замените:
- `ЗАПОЛНИТЬ_ИНН` — ИНН организации (10 цифр для ЮЛ);
- `ЗАПОЛНИТЬ_ПОЛНОЕ_НАИМЕНОВАНИЕ` — полное наименование по уставу;
- `ЗАПОЛНИТЬ_СОКРАЩЁННОЕ` / `ЗАПОЛНИТЬ_ОТОБРАЖАЕМОЕ` — сокращённое и
отображаемое имя;
- английский блок `<m2m:Eng>` — при наличии, иначе удалить;
- `<m2m:BrokerPlace>` — только если выступаем брокером, иначе оставить
закомментированным.
Депозитарный код `MC0413600000` уже подставлен.
## Подготовка файла к отправке
Файл хранится в UTF-8 для удобства, а НРД ждёт **windows-1251** (как объявлено
в прологе XML). Перекодируйте перед отправкой:
```bash
iconv -f utf8 -t cp1251 M2MTransferParticipantForm.example.xml \
> M2MTransferParticipantForm.win1251.xml
```
(Опционально) проверьте по схеме, если установлен xmllint:
```bash
xmllint --noout \
--schema ../../DOC/M2MSchemas_260408/M2MTransferParticipantForm.xsd \
M2MTransferParticipantForm.win1251.xml
```
## Куда отправлять
Письмо на **M2MOST@nsd.ru** (служба сервиса МОСТ M2M), приложив заполненную
анкету. Текст письма — в `email-draft.txt`.
После того как НРД внесёт код `MC0413600000` в справочник участников M2M,
тестовый робот начнёт отвечать `M2MTransferDecision` вместо `M2MTransferResponse`
с ошибкой M2M14 — и заявки в bj-server будут доходить до статуса
«Подтверждена/Отклонена» по решению контрагента, а не «Отклонена (M2M14)».