Skip to content

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

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/disconnect efface 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 queryUrl dé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/configuration dérive location_id uniquement 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 PaymentToken avec compteurs par token capturé/remboursé vs refusé/échoué. ReportController::transactions accepte payment_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 passerellesmpgs_direct et mpgs_hpp. Reflète la division PowerTranz Direct + HPP. Les configs mpgs existantes migrent vers mpgs_direct. Ajout d'override capture_method en 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 Plan répare les données features legacy 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_operation supprimé ; capture/refund/void utilisent le schéma gateway_options.
  • Seed payment_gateways idempotent — 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.js corrigé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 /return Odoo corrigé ; /payment/geniuscheckout/return re-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 utilise Authorization: Bearer … (pas X-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_url Magento, template OpenCart, gc-badge.svg Give, icône du block WC.

2026-05-12

  • Enrichissement des transactionssource, 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 Customer sur 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 le order_id marchand (pas le session id GC) et inclut le metadata original.
  • Payload payment.completed — inclut token_id pour 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.
  • TokenRefresher partagé 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.

Released under the proprietary Genius Checkout license.