Skip to content

Changelog

Todas las adiciones y correcciones notables a la plataforma Genius Checkout y su superficie pública (/api/v1, webhooks, checkout hospedado, plugins de tienda, apps de integración). Cronológico inverso. Las fechas son fechas de commit en UTC.

2026-05-22

2026-05-20

  • Rediseño de la página de configuración de GHL — diseño guiado de dos columnas con mockups inline; botón desconectar con diálogo de confirmación; nuevo POST /lc/configuration/disconnect borra las claves de la location verificada. +24 cadenas bilingües.
  • i18n + seguridad test/live del iframe de GHL — vistas setup y detect-location traducidas. Los queryUrl derivan el modo del prefijo de la API key; una clave gc_test_ no puede leer ni cobrar un token o transacción live (y viceversa).
  • Tarjeta de comercio conectado en GHL — nombre, negocio, email, país, merchant id, badges de modo de clave, última actualización.
  • Aislamiento multi-tenant de GHL (seguridad) — /lc/configuration deriva location_id solo desde una sesión GHL SSO verificada; se eliminó el selector cruzado de locations.
  • Emails de transacción + recibo — se agregó "Paid at" con zona horaria, Transaction # y Order #. Botones brand-green. 4 SVGs faltantes de tarjeta (Diners, Dankort, UnionPay, Maestro).
  • Panel TransactionDetail — sección completa de datos de tarjeta (icono de marca, PAN enmascarado, expiración, funding, emisor, país, sección de token enlazado).
  • Funcionalidad Gateway Appearance — display name, logo, marcas de tarjeta y íconos personalizados por gateway.
  • Saved Payment Methods de cliente — detalle de cliente del comercio lista cada PaymentToken con conteos por token de capturado/reembolsado vs rechazado/fallido. ReportController::transactions acepta payment_method_token_id.
  • Diseño en toda la plataforma — paleta unificada de badges, toggles con marca, secretos de webhook enmascarados, alineación de botones, numéricos tabulares, formato consistente de fechas, footer "secure checkout" en el flujo del comprador.
  • Componente PhoneInput — chip de bandera + dial-code, emit E.164, prop inputId.
  • MPGS dividido en dos gatewaysmpgs_direct y mpgs_hpp. Espeja la división PowerTranz Direct + HPP. Los configs mpgs existentes migran a mpgs_direct. Se agregó el override de capture_method en gateway-options (por defecto AUTHORIZE manual cuando el banco bloquea PAY).
  • Botón Test Connection de MPGS — crea una sesión vía POST autenticado y muestra errores del gateway.
  • Plans page — el accessor del modelo Plan sana datos features legacy mal formados.
  • Saved cards — el picker filtra al gateway seleccionado; se rechazan cargos cruzados de gateway en el servidor.

2026-05-18

  • Layout de email con marca — color de header / footer / botón según branding por comercio.
  • Admin de Platform branding — nombre + 5 variantes de logo + logo de email + color de marca + cableado de PDF.
  • P0 production-readiness — webhook fail-closed, comando de readiness, Docker multi-etapa, allowlist MPGS.

2026-05-16

  • Refactor MPGS bank-agnostic — autenticación 3DS direct-API con fallback elegante, capture-later listo para producción, Hosted Checkout E2E verificado live. force_operation removido; capture/refund/void usan el esquema gateway_options.
  • Seed de payment_gateways idempotente — sobrevive la nueva migración MPGS.

2026-05-15

  • i18n ticks 7–14 — Merchant Settings, Transactions, TransactionDetail, PaymentLinks, PaymentLinkDetail, Customers, CustomerDetail, Subscriptions, SubscriptionDetail, Disputes, DisputeDetail, ApiKeys, ApiLogs traducidos a ES/FR/pt-BR (42 de 62 vistas cableadas).
  • Sandbox MPGS Sagicor cableado — URL checkout.js corregida, esquema de config agregado, controlador Hosted Checkout, comando de smoke test.

2026-05-14

  • Email de tarjeta guardada traducido en 4 locales (en/es/fr/pt-BR).
  • Email de rechazo completamente traducido; locale plumbed a los dispatchers.
  • Vista de texto del recibo se traduce por locale + usa mb_strtoupper.
  • Archivos de traducción de Magento / OpenCart / Odoo / PrestaShop alineados con la fuente.

2026-05-13

  • Auditoría de módulos — ver storefront-plugins/AUDIT-2026-05-13.md.
  • SEGURIDAD (CRÍTICO) — tampering en /return de Odoo cerrado; /payment/geniuscheckout/return ahora re-consulta la sesión GC y solo confía en el estado de la API.
  • SEGURIDAD (MEDIO) — ventana de repetición de Ecwid aplicada (±300 s en eventCreated); Magento Savedcards usa Authorization: Bearer … (no X-Api-Key); el webhook de Odoo rechaza secretos vacíos / <16 caracteres.
  • Wix Velo Service Plugin SDK liberado — unidades menores con monedas en el controlador REST.
  • OpenCart maneja eventos payment.refunded + payment.partially_refunded.
  • Unidades menores con monedas + reembolso Ecwid + andamios MIT Magento + estado pending de PrestaShop.
  • Arreglos P0 de logos — PNG PrestaShop, icono de provider Odoo, ConfigProvider::logo_url Magento, template OpenCart, gc-badge.svg Give, icono del bloque WC.

2026-05-12

  • Enriquecimiento de transaccionessource, origin, IP, UA, geo, risk signals capturados al crear.
  • CSRF — 6 webhooks server-to-server eximidos (elimina 419s en prod).
  • Callback 3DS — persiste Customer en el camino de 3DS completion.
  • Ecwid — toggle explícito test/live; guardar settings ya no 422 en re-submit; iframe save cubre swap de comercio.
  • Checkout-session de GHL — respeta test_mode (antes siempre live).
  • Orquestación — capture / refund / void resilientes a excepciones del gateway.

2026-05-11

  • Webhook checkout.cancelled emitido cuando el donante cancela en la página hospedada.
  • Payload de payment.refunded — reenvía el order_id del comercio (no el session id de GC) e incluye el metadata original.
  • Payload de payment.completed — incluye token_id para que los plugins guarden la tarjeta sin un fetch extra.
  • Plugin Give liberado — plugin WP que usa solo APIs públicas de GC.
  • PowerTranz Direct declara supportsTokenCharge.

2026-05-10

  • Comando ops webhook:replay — reentrega cualquier delivery fallido desde CLI.
  • Tiendanube webhook receiver + lifecycle hooks.
  • VTEX implementación real de lifecycle.
  • TokenRefresher compartido en 4 integraciones OAuth.
  • Reembolso Wix + integración cron Wave.
  • OpenCart + PrestaShop plugins completados end-to-end; refunds Shopify enrutados vía API pública.
  • Audit log muestra eventos de integración en la página de connected-stores.
  • Línea de tiempo de actividad por conexión agregada a la página de integrations del portal.

2026-05-09

  • API Zapier — endpoints REST-hook subscribe/unsubscribe/sample-payments (ver Zapier).
  • Shopify Payments App + 7 andamios de integración.
  • Módulo QuickBooks Online — primitivas compartidas OAuth + HMAC.
  • Integración Ecwid Payment App liberada.
  • Plugin WooCommerce extraído a repo dedicado con namespacing Appsero.
  • Arreglos en emails de rechazo / recibo $0; renderizado de moneda corregido.

2026-05-08

  • Traducciones completas ES/FR de docs entregadas.
  • Baseline PHPStan comprometido, CI reactivado.
  • Config de webhook PayPal sembrado en tests para que el flujo de firma corra.

Historia previa

Para cambios anteriores a 2026-05-08, ver el log de commits del repo.

Released under the proprietary Genius Checkout license.