Changelog
Tous les ajouts et corrections notables à la plateforme Genius Checkout et à sa surface publique (/api/v1, webhooks, checkout hébergé, plugins de boutique, apps d'intégration). Ordre chronologique inverse. Les dates sont des dates de commit en UTC.
2026-05-22
- Ajout des pages Abonnements, Tokens de paiement, Zapier, Limites de débit, Pagination, Versionnement, Devises et Codes de refus.
- Ajout des pages de plugins pour PrestaShop, OpenCart, Magento 2, Wix, Give et Odoo.
- Traductions espagnole et française de
webhooks.mdetwoocommerce-plugin.mdmises en parité avec l'anglais.
2026-05-20
- Refonte de la page de configuration GHL — mise en page guidée à deux colonnes, mockups inline ; bouton de déconnexion avec dialogue de confirmation ; nouveau
POST /lc/configuration/disconnectefface les clés stockées pour la location vérifiée. +24 chaînes bilingues. - i18n + sécurité test/live de l'iframe GHL — vues setup et detect-location entièrement traduites. Les handlers
queryUrldérivent le mode du préfixe de clé ; une clégc_test_ne peut jamais lire ni débiter un token ou une transaction live (et vice versa). - Carte marchand connecté GHL — nom, business, e-mail, pays, merchant id, badges de mode de clé, dernière mise à jour.
- Isolation multi-tenant GHL (sécurité) —
/lc/configurationdérivelocation_iduniquement depuis une session GHL SSO vérifiée ; le sélecteur cross-tenant a été supprimé. - E-mails de transaction + reçu — ajout de "Paid at" avec fuseau horaire, Transaction # et Order #. Boutons couleur de marque. 4 SVGs de cartes manquants (Diners, Dankort, UnionPay, Maestro).
- Panneau TransactionDetail — section complète de données de carte (icône de marque, PAN masqué, expiration, funding, émetteur, pays, section token lié).
- Fonctionnalité Gateway Appearance — display name, logo, marques de carte et icônes personnalisées par passerelle.
- Saved Payment Methods côté client — la page de détail client liste chaque
PaymentTokenavec compteurs par token capturé/remboursé vs refusé/échoué.ReportController::transactionsacceptepayment_method_token_id. - Refonte design plateforme-wide — palette unifiée de badges de statut, toggles brandés, secrets webhook masqués, alignement des boutons, chiffres tabulaires, dates cohérentes, footer "secure checkout" sur le flux acheteur.
- Composant PhoneInput — chip drapeau + dial-code, émet E.164, prop
inputId. - MPGS divisé en deux passerelles —
mpgs_directetmpgs_hpp. Reflète la division PowerTranz Direct + HPP. Les configsmpgsexistantes migrent versmpgs_direct. Ajout d'overridecapture_methoden gateway-options (par défaut AUTHORIZE manuel quand la banque bloque PAY). - Bouton Test Connection MPGS — crée une session via POST authentifié et affiche les erreurs passerelle.
- Page Plans — l'accessor du model
Planrépare les donnéesfeatureslegacy malformées. - Saved cards — le picker filtre par passerelle sélectionnée ; les charges cross-gateway sont rejetées côté serveur.
2026-05-18
- Layout e-mail brandé — couleur de header / footer / bouton selon le branding marchand.
- Admin Platform branding — nom + 5 variantes de logo + logo e-mail + couleur de marque + câblage PDF.
- P0 production-readiness — webhook fail-closed, commande de readiness, Docker multi-étapes, allowlist MPGS.
2026-05-16
- Refactor MPGS bank-agnostic — auth 3DS direct-API avec fallback gracieux, capture-later production-ready, Hosted Checkout E2E vérifié live.
force_operationsupprimé ; capture/refund/void utilisent le schémagateway_options. - Seed
payment_gatewaysidempotent — survit à la nouvelle migration MPGS.
2026-05-15
- i18n ticks 7–14 — Merchant Settings, Transactions, TransactionDetail, PaymentLinks, PaymentLinkDetail, Customers, CustomerDetail, Subscriptions, SubscriptionDetail, Disputes, DisputeDetail, ApiKeys, ApiLogs traduits en ES/FR/pt-BR (42 sur 62 vues câblées).
- Sandbox MPGS Sagicor câblée — URL
checkout.jscorrigée, schéma de config ajouté, contrôleur Hosted Checkout, commande de smoke test.
2026-05-14
- E-mail de carte enregistrée traduit dans 4 locales (en/es/fr/pt-BR).
- E-mail de refus entièrement traduit ; locale propagée aux dispatchers.
- Vue texte du reçu se traduit par locale + utilise
mb_strtoupper. - Fichiers de traduction Magento / OpenCart / Odoo / PrestaShop alignés avec la source.
2026-05-13
- Audit des modules — voir
storefront-plugins/AUDIT-2026-05-13.md. - SÉCURITÉ (CRITIQUE) — tampering
/returnOdoo corrigé ;/payment/geniuscheckout/returnre-fetch désormais la session GC et ne fait confiance qu'au statut de l'API. - SÉCURITÉ (MOYEN) — fenêtre de rejeu Ecwid appliquée (±300 s sur
eventCreated) ; Magento Savedcards utiliseAuthorization: Bearer …(pasX-Api-Key) ; le webhook Odoo rejette les secrets vides / <16 caractères. - Wix Velo Service Plugin SDK livré — unités mineures conscientes des devises dans le contrôleur REST.
- OpenCart gère les événements
payment.refunded+payment.partially_refunded. - Unités mineures par devise + remboursement Ecwid + scaffolds MIT Magento + état pending PrestaShop.
- Corrections P0 de logos — PNG PrestaShop, icône provider Odoo,
ConfigProvider::logo_urlMagento, template OpenCart,gc-badge.svgGive, icône du block WC.
2026-05-12
- Enrichissement des transactions —
source,origin, IP, UA, geo, risk signals capturés à la création. - CSRF — 6 webhooks server-to-server exemptés (élimine les 419 en prod).
- Callback 3DS — persiste
Customersur le chemin de complétion 3DS. - Ecwid — toggle explicite test/live ; save settings ne 422 plus sur resubmit ; iframe save couvre le swap marchand.
- Checkout-session GHL — respecte
test_mode(était toujours live). - Orchestration — capture / refund / void résilients aux exceptions passerelle.
2026-05-11
- Webhook
checkout.cancelledémis quand le donateur annule sur la page hébergée. - Payload
payment.refunded— transfère leorder_idmarchand (pas le session id GC) et inclut lemetadataoriginal. - Payload
payment.completed— incluttoken_idpour que les plugins enregistrent la carte sans fetch supplémentaire. - Plugin Give livré — plugin WP n'utilisant que les APIs publiques GC.
- PowerTranz Direct déclare
supportsTokenCharge.
2026-05-10
- Commande ops
webhook:replay— re-livre toute delivery échouée depuis CLI. - Tiendanube récepteur de webhooks + hooks de lifecycle.
- VTEX implémentation réelle de lifecycle.
TokenRefresherpartagé sur 4 intégrations OAuth.- Remboursement Wix + intégration Wave cron.
- OpenCart + PrestaShop plugins terminés end-to-end ; refunds Shopify routés via l'API publique.
- Audit log affiche les événements d'intégration sur la page connected-stores.
- Timeline d'activité par connexion ajoutée à la page integrations du portail.
2026-05-09
- API Zapier — endpoints REST-hook subscribe/unsubscribe/sample-payments (voir Zapier).
- Shopify Payments App + 7 scaffolds d'intégration.
- Module QuickBooks Online — primitives partagées OAuth + HMAC.
- Intégration Ecwid Payment App livrée.
- Plugin WooCommerce extrait dans un repo dédié avec namespacing Appsero.
- Corrections d'e-mails refus / reçu
$0; rendu de devise corrigé.
2026-05-08
- Traductions complètes ES/FR de la doc livrées.
- Baseline PHPStan committée, CI réactivée.
- Config webhook PayPal seedée dans les tests pour que le flux de signature tourne.
Historique antérieur
Pour les changements avant 2026-05-08, voir le log de commits du repo.
