Redsys¶
Redsys es el procesador de pagos que hay detrás del TPV virtual (TPV virtual) que la mayoría de los bancos españoles ofrecen a sus clientes empresariales. El proveedor de pago Redsys permite a sus clientes pagar con tarjeta, o con Bizum, en su sitio web de eCommerce y en el portal de clientes.
Con la integración por redirección, los clientes son enviados a la página de pago segura de Redsys para completar el pago y después regresan a su base de datos. Su base de datos no recibe ni almacena ningún dato de tarjeta.
Nota
El proveedor Redsys lo proporciona el módulo payment_redsys de eYssen. Se activa automáticamente con el módulo: no es necesario instalar ningún módulo adicional.
Prerrequisitos¶
Un contrato de TPV virtual de Redsys con su banco, que le proporciona un código de comercio (también llamado FUC), un número de terminal y una clave secreta (clave secreta de firma) para cada entorno (pruebas y producción).
Para Bizum, su banco debe habilitar Bizum en su TPV virtual.
La moneda del pago debe tener un código numérico ISO 4217 (todas las monedas habituales lo tienen).
Configuración de Redsys¶
Su banco le da acceso al portal de administración de Redsys (Canales), con un portal para el entorno de pruebas y otro para producción. En cada uno de ellos, recopile los valores siguientes:
el código de comercio (FUC);
el número de terminal (normalmente
1);la clave secreta del terminal (clave secreta de firma).
Importante
Odoo solo acepta mensajes firmados con la versión de firma HMAC_SHA512_V2. Asegúrese de que su terminal esté configurado para usarla en el portal de administración de Redsys; si no sabe cómo hacerlo, consulte a su banco. Los mensajes firmados con otra versión, como HMAC_SHA256_V1, se rechazan (vea Solución de problemas).
Nota
Las URL que Redsys utiliza para comunicar el resultado del pago a Odoo (la notificación en línea y las URL de retorno del cliente) se envían a Redsys con cada solicitud de pago, por lo que no necesita introducirlas en el portal de administración de Redsys.
Configuración en Odoo¶
En la pestaña Credenciales, rellene los campos con los valores recopilados en el paso Configuración de Redsys:
Código de comercio (FUC): el código de comercio. Solo puede contener dígitos.
Terminal: el número de terminal, de 1 a 3 dígitos. Por defecto es
1.Clave secreta: la clave secreta del terminal.
Configure las demás opciones según lo necesite.
Establezca el campo Estado en Habilitado (o en Modo de prueba si desea probar la integración).
- menu
- Accounting ‣ Configuration ‣ Payment Providers ‣ Redsys ‣ Credentials
- shows
- The Redsys provider form, Credentials tab: Merchant Code (FUC), Terminal, Secret Key.
- highlight
- The Merchant Code (FUC), Terminal and Secret Key fields.
- data
- Fictitious merchant code and terminal 1; the secret key is masked (never use a real key).
- module
- payment_redsys
- notes
- English UI, light theme, 1440px width; developer mode off.
Importante
La Clave secreta solo es visible y editable para los usuarios que pertenecen al grupo de acceso de administrador de Ajustes (grupo técnico base.group_system). Se muestra enmascarada en pantalla. Los tres campos son obligatorios en cuanto el proveedor no está deshabilitado. El código de comercio y la clave secreta se borran cuando se neutraliza la base de datos (por ejemplo, cuando se duplica una base de datos de producción para hacer pruebas), así que vuelva a introducirlos en la copia.
Métodos de pago¶
Cuando se instala el módulo, los métodos de pago Tarjeta, Bizum, Visa y Mastercard se activan para el proveedor. Para cambiarlo, haga clic en Habilitar métodos de pago en la pestaña Configuración del proveedor. Consulte Métodos de pago para obtener más información.
Con Redsys solo están disponibles las monedas que tienen código numérico ISO 4217. Los importes se envían a Redsys en la unidad más pequeña de la moneda (por ejemplo, céntimos en el caso del euro).
Modo de prueba y producción¶
El entorno con el que se comunica Odoo depende del Estado del proveedor de pago:
Estado |
Entorno de Redsys |
|---|---|
Modo de prueba |
Entorno de pruebas de Redsys ( |
Habilitado |
Entorno de producción de Redsys ( |
Para probar la integración sin procesar pagos reales:
Establezca el Estado en Modo de prueba.
En la pestaña Credenciales, introduzca el código de comercio, el terminal y la clave secreta de su TPV virtual de pruebas.
Pague una factura o un pedido de eCommerce con una de las tarjetas de prueba que Redsys proporciona en su documentación para desarrolladores.
Cuando esté listo para aceptar pagos reales, sustituya las tres credenciales por las de su TPV virtual de producción y establezca después el Estado en Habilitado.
Advertencia
Los entornos de pruebas y de producción tienen claves secretas diferentes. Cambiar el Estado sin sustituir las credenciales hace que todos los pagos fallen con un error de firma.
Truco
Cada pago recibe su propio número de pedido aleatorio, por lo que una base de datos de pruebas duplicada y su base de datos de producción pueden compartir un terminal sin problemas. Aun así, utilice el modo de prueba en una base de datos duplicada o de pruebas, como se recomienda en Modo de prueba.
Cómo se procesan los pagos¶
El cliente selecciona Redsys (o Bizum) en el formulario de pago y hace clic en Pagar.
Odoo genera un número de pedido único de 12 caracteres para la transacción: 4 dígitos seguidos de 8 dígitos o letras mayúsculas. Identifica el pago en el portal de administración de Redsys y se guarda en el campo Número de pedido Redsys de la transacción. También se utiliza como referencia del proveedor.
El cliente es redirigido a la página de pago de Redsys, donde paga y, si su banco lo exige, se autentica.
Redsys envía una notificación firmada a Odoo y devuelve al cliente a la página de estado del pago de su base de datos. La notificación es la referencia del resultado del pago; el retorno del cliente solo se utiliza si incluye los datos firmados.
El estado de la transacción se deriva del código de respuesta de Redsys (
Ds_Response):Código de respuesta
Estado de la transacción
0000 a 0099
Confirmada (pago autorizado)
9915
Cancelada (pago cancelado por el cliente)
8210, 8220, 9997, 9998, 9999
Pendiente (operación todavía en curso, p. ej., autenticación)
Cualquier otro código
Error, con el motivo indicado cuando se conoce, seguido del código de Redsys
Odoo también comprueba que el importe y la moneda comunicados por Redsys coinciden con los de la transacción; si no coinciden, la transacción pasa a error.
Bizum¶
Bizum permite a los clientes en España pagar desde la aplicación móvil de su banco, utilizando su número de teléfono. Se procesa a través del mismo TPV virtual de Redsys.
Para ofrecerlo, asegúrese de que Bizum esté habilitado en su TPV virtual de Redsys y de que el método de pago Bizum esté activado en el proveedor Redsys (vea Métodos de pago).
Nota
El método Bizum solo se ofrece para pagos en EUR desde España, según la configuración del método de pago.
Cuando el cliente selecciona Bizum, la página de pago de Redsys se limita a Bizum. Cuando Redsys comunica un pago como realizado con Bizum, el método de pago de la transacción se establece en Bizum.
Bizum no admite guardar métodos de pago ni el pago exprés (express checkout).
Reembolsos¶
Los reembolsos totales y parciales se pueden realizar directamente desde Odoo, tanto para pagos con tarjeta como con Bizum. Para reembolsar un pago, acceda a él y haga clic en el botón Reembolso, tal como se explica en Reembolsos.
Odoo envía la solicitud de reembolso a Redsys de inmediato y la transacción de reembolso pasa a confirmada cuando Redsys la aprueba (código de respuesta 900). Si Redsys la deniega (por ejemplo, Devolución no permitida) o no se puede contactar con él, la transacción de reembolso pasa a error con el motivo.
Nota
Los reembolsos siempre se basan en el número de pedido de Redsys del pago original y utilizan la misma moneda. Redsys aplica sus propios límites a los reembolsos (por ejemplo, el total reembolsado no puede superar el importe original).
Solución de problemas¶
Los detalles técnicos de cada pago y notificación se escriben en los registros del servidor. Las situaciones siguientes son las más habituales.
El mensaje está firmado con una versión no admitida¶
Odoo rechaza la notificación o la respuesta con el mensaje El mensaje está firmado con la versión HMAC_SHA256_V1, pero solo se admite HMAC_SHA512_V2. Configure el terminal para usar HMAC_SHA512_V2. Cambie el tipo de firma de su terminal a HMAC_SHA512_V2 en el portal de administración de Redsys, o pida a su banco que lo haga.
Firma no válida¶
Compruebe que la Clave secreta corresponde al entorno establecido en el Estado (pruebas o producción) y al terminal introducido en el campo Terminal.
Compruebe que no haya espacios al principio o al final de las credenciales.
Asegúrese de que las notificaciones pueden llegar a su base de datos: debe ser accesible públicamente en su URL base y no estar detrás de un cortafuegos o un proxy que bloquee las solicitudes procedentes de Redsys.
Las notificaciones con una firma ausente o no válida se ignoran y la transacción no se actualiza.
Redsys rechaza la página de pago¶
El código de comercio debe corresponder al entorno y el terminal debe existir en su TPV virtual (Comercio no registrado en FUC).
Pedido repetido significa que Redsys ya conoce el número de pedido. Los números de pedido se generan de forma aleatoria; vuelva a intentar el pago.
Redsys puede rechazar una moneda que su banco no haya habilitado en su terminal. Consulte a su banco si utiliza una moneda distinta del euro.
Errores de moneda e importe¶
La moneda … no tiene código numérico ISO 4217: Redsys no admite la moneda. Utilice otra moneda, como el euro.
El importe recibido … no coincide con el importe de la transacción o La moneda recibida … no coincide: la transacción pasa a error porque los datos devueltos por Redsys difieren de la solicitud. Compruebe el pago en el portal de administración de Redsys antes de hacer nada más.
El cliente pagó pero la transacción no está confirmada¶
La transacción se actualiza mediante la notificación de servidor a servidor. Si falta, busque en el portal de administración de Redsys el número de pedido guardado en el campo Número de pedido Redsys de la transacción, y busque la notificación en los registros del servidor. El número de pedido se indica en los registros cuando no se encuentra ninguna transacción coincidente.
Una transacción pasa a error¶
El motivo se muestra en la transacción y en el chatter del documento relacionado. Incluye el código de respuesta de Redsys, por ejemplo Saldo insuficiente. (código Redsys 0116).
Ver también