Новости
2.3.2 — 2026-10-06
heading.anchorLabel2.3.2
heading.anchorLabelСпрямо 2.3.1.
Внимание при деплой
heading.anchorLabel- DI:
di.xmlе променен — при деплоя се чистиgenerated/.
Комити (2)
heading.anchorLabel2e0fdf9Release 2.3.248da546fix: keep the shopper’s session when BORICA returns them
Бележки
heading.anchorLabel- Връщането от BORICA запазва сесията на купувача. Банката връща с cross-site POST, без сесийната бисквитка (
SameSite=Lax), и Magento създаваше нова сесия, която заместваше тази на купувача: логнат клиент излизаше от профила, а възстановената количка и съобщението отиваха в сесия, която никой не чете. Сегаborica/processing/resultработи без сесия (поръчката се намира от подписания отговор) и пренасочва към нов GET адресborica/processing/back, където количката се възстановява в истинската сесия, със съобщението на банката (STATUSMSG). - Пропуснатият пост-release bump след 2.3.1 е наваксан: master е на 2.3.3.
При деплой
heading.anchorLabel- Нов глобален плъгин на
SessionStartCheckerи нов route: чисти сеgenerated/и целият кеш (cache:clean configне стига — плъгинът просто липсва, без грешка).
Известен проблем
heading.anchorLabel- Истинско връщане от BORICA не е минато локално (подписът на банката не може да се генерира); проверено е с реална поръчка и подменен валидатор на подписа и с cross-site POST в браузър.
2.3.1 — 2026-10-05
heading.anchorLabel2.3.1
heading.anchorLabelFixed
heading.anchorLabel- The private key password was saved in the clear from the admin, and the private key stopped opening. In 2.3.0 the
private_key_password(_sandbox)field had no backend model, so “Save Config” stored it unencrypted.etc/config.xmldeclares the pathEncrypted, so scopeConfig decrypts it on read into garbage, and no payment could be signed. The fields are nowobscure+Encrypted, and the new data patchEncryptKeyPasswordsSavedInClearencrypts passwords that were saved in the clear (ciphertext is left untouched).
Changed
heading.anchorLabelborica_certificate(_sandbox): the label is now “BORICA Certificate or Public Key” and explains that either one goes in:BEGIN CERTIFICATEorBEGIN PUBLIC KEY. The config path stays the same.
⚠️ Stores on 2.3.0 where someone saved the BORICA section: card payments stay broken until this upgrade runs (setup:upgrade runs the patch).
2.2.2 — 2026-09-09
heading.anchorLabelПоправка: полето за публичния ключ на Борика пишеше на мъртъв път
heading.anchorLabelПолето „BORICA Public Key“ в админа отново пише на payment/borica/borica_certificate —
пътя, който Config::getBoricaCertificate() чете през ConfigInterface::BORICA_CERTIFICATE.
От 2.1.1 до 2.2.1 полето пишеше на payment/borica/borica_public_key, който никой код
никога не е чел: полето се рендира празно, а въведеното в него не стига до
SignatureValidator. Подписът на отговора от гейта се проверява срещу липсващ ключ и всяко
връщане пада с Open public key error. Регресията е половин преименуване в 5a13743 —
id, label и config_path бяха преименувани, константата не.
Кой е засегнат
heading.anchorLabel- Магазин, конфигуриран за пръв път на 2.1.1 – 2.2.1 → ключът му е заседнал на мъртвия път и картовите плащания не минават. Този release го спасява.
- Магазин от 2.0.0 / 2.1.0 → не е засегнат, ключът му никога не е напускал правилния път. След обновяването полето в админа най-после ще го показва.
- 1.x е отделна секция (
payment/webcode_borica/*) и никога не е имала този проблем.
⚠️ Data patch срещу жива база
heading.anchorLabelSetup/Patch/Data/MoveStrayBoricaPublicKey пренася заседнала стойност от borica_public_key
върху borica_certificate — само при празна цел и съвпадащ scope, тъй че ръчно поставен
ключ не се презаписва. Изходните редове не се трият. Изпълнява се при setup:upgrade.
Деплоят иска cache:flush (конфигурационната структура се кешира).
Няма промени по конструктори или DI → чистене на generated/ не е нужно.
Deprecated
heading.anchorLabelConfigInterface::getCertificate() / Config::getCertificate() (търговският сертификат на
payment/borica/certificate) няма нито един извикващ. 3DS Gate удостоверява търговеца по
подписания P_SIGN, не по TLS клиентски сертификат, тъй че няма и какво да се довърши —
закоментираният код в RefundTransactionClient отпада. Методът и двете админ полета
се махат в 3.0.0; тук остават, защото махането им от @api интерфейс е BC-break.
Без BC-break
heading.anchorLabelНищо в този release не чупи публичен API.
2.1.2 — 2026-07-28
heading.anchorLabelRelease 2.1.2