Redsys para PrestaShop API
14 servicios especializados, 28 controladores y una superficie de integración completa para desarrolladores de PrestaShop.
Modelo de integración
Redsys para PrestaShop es un módulo estándar de PrestaShop (PrestaShop 8+, PHP 8.1+). No expone una REST API de transacciones de propósito general: no hay recurso WebserviceRequest ni endpoint JSON público para consultar o modificar transacciones de forma remota. En su lugar, la superficie de integración es la convencional de PrestaShop — front controllers (las URLs de pago, retorno y notificación), controladores de administración (pestañas del back-office), una capa de servicios internos, un registro de capacidades de pago y hooks del módulo.
Si necesitas consultar pedidos o emitir reembolsos de forma programática desde un sistema externo, usa el propio Webservice del núcleo de PrestaShop (el recurso /api) sobre los datos de tu tienda, y personaliza el flujo de Redsys mediante los hooks del módulo. Para automatizar pagos mediante una API dedicada, WooCommerce Redsys Gateway expone una REST API A2A / UCP completa.
Nota: el módulo incluye internamente un RedsysRestService — ese es el cliente que el módulo usa para comunicarse con la propia REST API de Redsys para pagos InSite. No es una API que el módulo exponga a terceros.
URLs de front controller
Los front controllers se encuentran en controllers/front/ y se alcanzan a través del module link de PrestaShop, por ejemplo:
# Built in code with $this->context->link->getModuleLink('ps_redsys_gateway', '<controller>')
https://your-store.com/index.php?fc=module&module=ps_redsys_gateway&controller=<controller>
# or, with friendly URLs enabled
https://your-store.com/module/ps_redsys_gateway/<controller>
Los controladores siguientes son los que un desarrollador suele necesitar conocer. Son visitados por el navegador del comprador o llamados servidor a servidor por Redsys; no son una API de consulta.
| Controlador | Función |
|---|---|
payment | Inicia el pago y redirige al comprador a Redsys |
validation | Valida los datos de pago para InSite y otros métodos embebidos |
ipn | Recibe la Instant Payment Notification firmada de Redsys (servidor a servidor) |
confirmation | Gestiona el retorno correcto desde Redsys (puede liquidar vía IPN o parámetros de URL) |
return | Gestiona los retornos fallidos / cancelados desde Redsys |
paygoldipn | Endpoint IPN para enlaces de pago Paygold |
savedcardpayment / oneclickpayment | Pago con una tarjeta almacenada / checkout en un clic |
bizumpayment / insitepayment | Puntos de entrada de pago Bizum e InSite (tarjeta embebida) |
expresspay / googlepaycheckoutpayment / applepaycheckoutpayment | Handlers de express checkout (Apple Pay, Google Pay, un clic) |
cron | Tareas programadas (notificaciones de caducidad de tarjeta, mantenimiento) |
Notificación (IPN)
La liquidación del pago la impulsa la notificación firmada servidor a servidor de Redsys, no el navegador del comprador. Esta URL se configura en tu terminal de Redsys (RedsysHMAC) como la "URL de notificación / merchant URL". El módulo la expone a través del front controller ipn.
https://your-store.com/index.php?fc=module&module=ps_redsys_gateway&controller=ipn
# Paygold payment links use a dedicated endpoint
https://your-store.com/index.php?fc=module&module=ps_redsys_gateway&controller=paygoldipn
El controlador verifica la firma HMAC-SHA256 de Redsys en el payload Ds_Signature / Ds_MerchantParameters antes de cambiar cualquier estado de pedido. Alrededor de este procesamiento el módulo dispara los hooks actionRedsysBeforeIPNProcess y actionRedsysAfterIPNProcess — consulta la referencia de hooks para insertar tu propia lógica.
Servicios y capacidades
La lógica de negocio reside en clases de servicio PSR-4 bajo src/Service/ (namespace RedsysGateway\Service\). Son bloques de construcción internos que puedes reutilizar desde un override o un módulo complementario; no son endpoints de red.
| Servicio | Responsabilidad |
|---|---|
RedsysRefundService | Ejecuta reembolsos totales y parciales contra Redsys |
TokenManagementService | Almacena, lista y elimina tokens de tarjeta guardada |
PreauthorizationService | Preautorización y captura posterior |
PaygoldService | Generación de enlaces de pago Paygold |
ExpressCheckoutService / ApplePayService / GooglePayService / OneClickService | Flujos de express checkout y wallet |
RedsysOrderNumberService | Construye y analiza el número de pedido de Redsys (Ds_Merchant_Order) |
RedsysRestService / InespayApiService | Clientes para las REST APIs de Redsys e Inespay |
PaymentFilterService | Controla qué métodos de pago se ofrecen |
LogManagementService / LicenseService | Gestión de logs y de licencia |
Las capacidades de pago se registran a través de un pequeño registro bajo src/Capability/ (CapabilityRegistry con PreauthCapability, RefundCapability y TokenRCapability). Los terceros pueden registrar y consultar capacidades mediante los hooks actionRegisterPaymentCapabilities y actionCheckPaymentCapability.
Controladores de administración
Las pestañas del back-office se encuentran bajo controllers/admin/. Se renderizan dentro de la administración de PrestaShop y están protegidas por los permisos habituales de empleado.
| Controlador | Propósito |
|---|---|
AdminRedsysLogsController | Examina y exporta los logs de transacciones de la pasarela |
AdminRedsysTokensController | Gestiona los tokens de tarjeta almacenados |
AdminRedsysPaygoldController | Crea y hace seguimiento de los enlaces de pago Paygold |
AdminRedsysLicenseController | Activa y gestiona la licencia del módulo |
Configuración
Todos los ajustes se almacenan a través del almacén Configuration de PrestaShop y se editan desde la pantalla de configuración del módulo (Módulos → Redsys para PrestaShop → Configurar). Lee los valores en código con la API estándar de PrestaShop:
// Read a stored Redsys configuration value (key names are internal to the module).
$merchantCode = Configuration::get('REDSYS_MERCHANT_CODE'); // example key
$terminal = Configuration::get('REDSYS_TERMINAL'); // example key
El hook actionRedsysConfigSave se dispara cada vez que se guarda la configuración, de modo que un módulo complementario puede reaccionar a cambios de credenciales o de terminal.
Extender el módulo
Como no hay API remota, la personalización se realiza mediante los hooks que despacha el módulo. El módulo dispara 18 hooks a lo largo del ciclo de vida del pago, tokens, gestión de IPN, express checkout, Paygold y capacidades de pago — por ejemplo actionRedsysBeforePayment, actionRedsysPaymentSuccess, actionRedsysPaymentError, actionRedsysModifyParameters (encadenable) y actionRedsysTokenCreated.
Consulta la lista completa con parámetros, valores de retorno y ejemplos de código en la referencia de hooks de Redsys para PrestaShop.
Consigue acceso completo a la API
La REST API se incluye con Redsys para PrestaShop Premium.