Skip to content

0.0.9

Choose a tag to compare

@EgorGruzdev EgorGruzdev released this 22 Sep 21:14
· 19 commits to master since this release

Исправления по сверке с описанием стандарта 1С:DirectBank 2.2.2 (#24).

Главное: официальный пример выписки из описания стандарта раньше не разбирался (TypeError на Stamp::$Branch), GetPackList отправлял дату не в том формате, а клиент переставал работать после истечения сессии.

Транспорт

  • GetPackList?date= в формате dd.MM.yyyy HH:mm:ss#3
  • повторный вход и повтор запроса при ошибках 1006/1007#4
  • ошибка банка разбирается при любом HTTP-статусе; неожиданный ответ даёт UnexpectedResponseException#5
  • код ошибки банка строкой: ClientException::getBankCode(), getError()#9

Разбор документов

  • необязательные по XSD элементы стали nullable — #6
  • повторяющиеся элементы стали массивами: Packet::getDocuments(), CheckType::getDetails()#7
  • больше не теряются InnerDocKind, атрибуты Data, подписи Signature, userAgent выписки, статус в штампе банка — #8

Тесты и CI

  • настройка handler в Client и офлайн-тесты Client на MockHandler; тесты стенда банка в группе bank-stand#10
  • в фикстурах официальные примеры 1С, выписка только с обязательными элементами и выписка со всеми видами PayDoc; все проходят XSD
  • GitHub Actions: PHP 8.0–8.5 × Guzzle 7/8, все 12 комбинаций зелёные — #11

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

  • ErrorType::getCode() возвращает string вместо int
  • CheckType::getDetails() возвращает массив DetailsType[] вместо ?DetailsType
  • при HTTP 4xx/5xx вместо исключения Guzzle (GuzzleHttp\Exception\BadResponseException) выбрасывается ClientException / UnexpectedResponseException
  • геттеры необязательных полей возвращают null: Stamp::getBranch(), StatementData::getStamp(), Packet::getUserAgent(), StatementRequest::getUserAgent()

Полный список изменений: 0.0.8...0.0.9