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
- Se agregaron las páginas Suscripciones, Tokens de pago, Zapier, Límites de tasa, Paginación, Versionado, Monedas y Códigos de rechazo.
- Se agregaron páginas de plugins de plataforma para PrestaShop, OpenCart, Magento 2, Wix, Give y Odoo.
- Se llevó la traducción al español y francés de
webhooks.mdywoocommerce-plugin.mda paridad con el inglés.
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/disconnectborra 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
queryUrlderivan el modo del prefijo de la API key; una clavegc_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/configurationderivalocation_idsolo 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
PaymentTokencon conteos por token de capturado/reembolsado vs rechazado/fallido.ReportController::transactionsaceptapayment_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 gateways —
mpgs_directympgs_hpp. Espeja la división PowerTranz Direct + HPP. Los configsmpgsexistentes migran ampgs_direct. Se agregó el override decapture_methoden 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
Plansana datosfeatureslegacy 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_operationremovido; capture/refund/void usan el esquemagateway_options. - Seed de
payment_gatewaysidempotente — 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.jscorregida, 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
/returnde Odoo cerrado;/payment/geniuscheckout/returnahora 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 usaAuthorization: Bearer …(noX-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_urlMagento, template OpenCart,gc-badge.svgGive, icono del bloque WC.
2026-05-12
- Enriquecimiento de transacciones —
source,origin, IP, UA, geo, risk signals capturados al crear. - CSRF — 6 webhooks server-to-server eximidos (elimina 419s en prod).
- Callback 3DS — persiste
Customeren 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.cancelledemitido cuando el donante cancela en la página hospedada. - Payload de
payment.refunded— reenvía elorder_iddel comercio (no el session id de GC) e incluye elmetadataoriginal. - Payload de
payment.completed— incluyetoken_idpara 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.
TokenRefreshercompartido 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.
