Справочник: выгрузка XML в подлинном формате НРД; фикс ошибочного FIFO-сопоставления ответа

1) XML-выгрузка справочника (/admin/handbook → XML) теперь в формате НРД
   (hk:M2MTransferHandbook: SettlementPlaces/Participants, Rus/Eng,
   Depository/BrokerPlace). Поллер сохраняет подлинный XML от НРД
   (writeHandbookRawXML → m2m-handbook.xml) и выгрузка отдаёт его как есть
   (windows-1251, байт в байт). Для установок без своего шлюза — реконструкция
   того же формата из плоского JSON (reconstructHandbookXML), проверено
   парсером НРД.

2) findDealForResponse: ответ сервиса МОСТ с конкретным GUID, которого нет
   среди ИСХОДЯЩИХ сделок (например M2M31 на наше решение по ВХОДЯЩЕМУ
   переводу), больше НЕ пришивается по эвристике FIFO к чужой исходящей
   заявке и не отклоняет её ошибочно. FIFO остаётся только для ответа с
   нулевым/пустым GUID (поведение НРД при M2M14).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
fontvielle
2026-10-14 19:10:18 +03:00
parent c9ea6067fb
commit 567706e0a1
3 changed files with 142 additions and 49 deletions
+1
View File
@@ -250,6 +250,7 @@ func (s *Server) applyIncoming(ctx context.Context, p igw.Package) error {
return nil
}
nsdProbeReply(time.Now())
writeHandbookRawXML(unpacked.DocXML) // подлинный XML НРД — для выгрузки со страницы справочника
if !saveHandbook(&hb) {
log.Printf("lk-gateway: поллер справочник M2M id=%d: без изменений (%d участников) — связь с НРД подтверждена", p.ID, len(hb.Participants.Participants))
return nil