0.0.9
Исправления по сверке с описанием стандарта 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вместоintCheckType::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