Поллер: отлов ответов НРД (анкета участника и неизвестные документы)
После отправки анкеты участника (#M2MPF) НРД присылает ответ, схему которого мы ещё не разбираем. Фаза 1 — отловить его на боевом контуре: - входящий с корнем M2MTransferParticipantForm сохраняется как подлинный XML и логируется отдельно (ответ НРД на анкету); - любой неизвестный M2M-документ в default теперь тоже сохраняется (раньше молча пропускался), чтобы увидеть реальный тип/схему. Файлы: /var/lib/bj/.bj/nsd-replies/<время>-<tag>-id<N>-<тип>.xml (последние 100). Разбор ответа встроим в систему, когда увидим реальный документ на бою. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
@@ -264,8 +264,17 @@ func (s *Server) applyIncoming(ctx context.Context, p igw.Package) error {
|
||||
log.Printf("lk-gateway: поллер СПРАВОЧНИК M2M получен id=%d: участников %d, мест расчётов %d (состав изменился)",
|
||||
p.ID, len(hb.Participants.Participants), len(hb.SettlementPlaces.Places))
|
||||
return nil
|
||||
case strings.Contains(doc, "M2MTransferParticipantForm"):
|
||||
// Ответ НРД на нашу анкету участника (#M2MPF): подтверждение регистрации.
|
||||
// Схему ответа фиксируем на боевом контуре — сохраняем подлинный XML, чтобы
|
||||
// затем встроить разбор в систему (для всех клиентов).
|
||||
path, root := captureNSDReply(p, unpacked.DocXML, "participant-form")
|
||||
log.Printf("lk-gateway: поллер ОТВЕТ НРД на анкету участника id=%d (%s): корень <%s>, сохранён %s", p.ID, p.Type, root, path)
|
||||
return nil
|
||||
default:
|
||||
log.Printf("lk-gateway: поллер пакет id=%d (%s) — неизвестный M2M-документ, пропуск", p.ID, p.Type)
|
||||
// Неизвестный документ НРД — тоже «отлавливаем»: сохраняем подлинный XML для разбора.
|
||||
path, root := captureNSDReply(p, unpacked.DocXML, "unknown")
|
||||
log.Printf("lk-gateway: поллер пакет id=%d (%s) — неизвестный M2M-документ <%s>, сохранён %s", p.ID, p.Type, root, path)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user