Skip to content

Новости

This content is not available in your language yet.

2.3.2 — 2026-10-06

heading.anchorLabel

Спрямо 2.3.1.

Внимание при деплой

heading.anchorLabel
  • DI: di.xml е променен — при деплоя се чисти generated/.

Комити (2)

heading.anchorLabel
  • 2e0fdf9 Release 2.3.2
  • 48da546 fix: 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.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.xml declares the path Encrypted, so scopeConfig decrypts it on read into garbage, and no payment could be signed. The fields are now obscure + Encrypted, and the new data patch EncryptKeyPasswordsSavedInClear encrypts passwords that were saved in the clear (ciphertext is left untouched).
  • borica_certificate(_sandbox): the label is now “BORICA Certificate or Public Key” and explains that either one goes in: BEGIN CERTIFICATE or BEGIN 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.anchorLabel

Setup/Patch/Data/MoveStrayBoricaPublicKey пренася заседнала стойност от borica_public_key върху borica_certificate — само при празна цел и съвпадащ scope, тъй че ръчно поставен ключ не се презаписва. Изходните редове не се трият. Изпълнява се при setup:upgrade.

Деплоят иска cache:flush (конфигурационната структура се кешира). Няма промени по конструктори или DI → чистене на generated/ не е нужно.

ConfigInterface::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.anchorLabel

Release 2.1.2