Skip to content

0.1.0: обязательный минимум стандарта 1С:DirectBank 2.2.2 - #25

Merged
EgorGruzdev merged 6 commits into
masterfrom
feat/0.1.0
Sep 22, 2026
Merged

EgorGruzdev merged 6 commits into
masterfrom
feat/0.1.0

Conversation

@EgorGruzdev

Copy link
Copy Markdown
Contributor

Обязательный минимум стандарта 1С:DirectBank 2.2.2 — milestone 0.1.0.

Документы

  • обязательные виды ЭД: StatusDocNotice (02), StatusRequest (03), Probe (05), Settings (06) — Обязательные виды ЭД: 02, 03, 05, 06 #12
  • StatusPacketNotice разбирается через mapFromXml(), как остальные входящие документы
  • в тестах официальные примеры 1С для всех четырёх видов; исходящие документы проходят XSD

Клиент

Справочники

Несовместимые изменения и изменения поведения

  • логин и пароль (Authorization) передаются только в Logon, как требует стандарт; SID в Logon не передаётся
  • если банк требует OTP, createSession() выбрасывает OtpRequiredException; раньше возвращался неавторизованный SID
  • в ClientInterface добавлены confirmOtp() и getPackListResponse() — собственные реализации интерфейса нужно дополнить
  • пустая строка в sessionId больше не принимается

- DocKind: все коды из таблицы видов ЭД, исправлены направления в
  комментариях, DocKind::REQUIRED; короткий синоним STATUS_PACKET_NOTICE
- DocStatus, PacketStatus, StatementType
- ErrorCode: все коды ошибок банковского сервиса

Closes #15
- Content-Type: application/xml; charset=utf-8
- AvailableAPIVersion в Logon, настройка availableApiVersion (по умолчанию
  версия формата библиотеки, null — не передавать)
- настройка userAgent
- логин и пароль передаются только в Logon, SID — только в запросах сессии

Closes #16
…ckListResponse()

Client::getPackListResponse() возвращает список контейнеров вместе с
TimeStampLastPacket и принимает эту отметку строкой из предыдущего
ответа или DateTimeInterface. Время сервера банка передаётся как есть.
getPackList() работает как раньше.

Closes #13
- LogonResponseType разбирает ExtraAuth/OTP (phoneMask, code), isOtpRequired()
- если банк требует OTP, createSession() и неявный вход перед запросом
  выбрасывают OtpRequiredException с неавторизованным SID
- Client::confirmOtp() подтверждает вход и запоминает авторизованный SID
- createSession() запоминает полученный SID: следующий запрос не выполняет
  повторный Logon

Closes #14
- StatusDocNotice — извещение о состоянии электронного документа (02)
- StatusRequest — запрос о состоянии электронного документа (03)
- Probe — запрос-зонд (05), без необязательного Digest
- Settings — настройки обмена с банком (06) со всеми вложенными элементами
- StatusPacketNotice разбирается через mapFromXml(), как остальные входящие
- в тестах официальные примеры 1С для всех четырёх видов; исходящие
  документы проходят XSD

Closes #12
@EgorGruzdev EgorGruzdev added this to the 0.1.0 milestone Sep 22, 2026
@EgorGruzdev
EgorGruzdev merged commit a8c6ff0 into master Sep 22, 2026
12 checks passed
@EgorGruzdev
EgorGruzdev deleted the feat/0.1.0 branch September 22, 2026 21:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant