VibeFox Satispay for PrestaShop — Ayuda
Requisitos
PrestaShop: 8.0 a 9.x.
PHP: 8.0 o posterior con la extensión OpenSSL. El módulo no se instala en versiones anteriores de PHP ni sin OpenSSL.
Moneda: EUR. Satispay cobra solo en euros, por lo que el método de pago se oculta cuando la moneda del carrito no es EUR.
Cuenta de Satispay: una cuenta de Satispay Business. No copias ninguna clave API: el módulo se conecta con un código de activación de un solo uso que generas en el Satispay Business Dashboard (véase Configuración). Para las pruebas necesitas una cuenta sandbox de Satispay, que solicitas a Satispay para desarrolladores.
Tienda pública: tu tienda debe ser accesible desde internet, para que Satispay pueda llamarla cuando cambie un pago. Para esto no hay que configurar nada en Satispay.
Clave de licencia de VibeFox: se compra en vibefox.net. Una clave funciona en un dominio.
Instalación
1. En el back office ve a Modules > Module Manager y haz clic en Upload a module. Elige el archivo ZIP del módulo.
2. Cuando termine la subida, haz clic en Configure, o busca VibeFox Satispay Gateway en la lista de módulos más tarde y haz clic en Configure.
3. Introduce tu clave de licencia de VibeFox en License key, en el bloque de licencia de la parte superior de la página Configure, y haz clic en Activate (véase Clave de licencia).
4. Elige el entorno: activa Sandbox Mode para las pruebas; déjalo desactivado para los pagos reales.
5. Pega un código de activación de ese entorno en Activation Code y haz clic en Save. El campo Status mostrará Connected con el Key ID.
6. Activa Enable/Disable y haz clic en Save. Prueba un pago en el sandbox; después desactiva Sandbox Mode y conecta el entorno de producción con un código de activación de producción.
Al instalarse, el módulo crea el estado de pedido Satispay payment on hold. PrestaShop ofrece un nuevo módulo de pago para todas las monedas, países y grupos de clientes. Puedes limitarlos en Payment > Preferences. Allí el módulo debe estar permitido para el euro.
Configuración
Todos los ajustes están en la página del módulo: Modules > Module Manager > VibeFox Satispay Gateway > Configure. Cada sección tiene su propio botón Save, que guarda toda la página.
Finalización de compra
Lo que ven los clientes en la lista de métodos de pago.
Enable/Disable: Enable Satispay payment activa o desactiva el método de pago. Por defecto: off.
Title: el nombre del método de pago que se muestra en la finalización de compra. Es también el nombre del método de pago guardado en el pedido. Por defecto: Satispay. Obligatorio.
Description: el texto que se muestra debajo del método de pago en la finalización de compra. Por defecto: Pay with the Satispay app: scan the QR code or confirm the payment on your phone.
Conexión con Satispay
Status: el estado de ambos entornos, por ejemplo Live: Connected con el Key ID o Sandbox: Not connected, y qué entorno está en uso. Mientras el entorno en uso no esté conectado, el campo muestra Satispay is hidden at checkout until the environment in use is connected.
Sandbox Mode: usa el entorno sandbox (de pruebas) de Satispay. Los pagos sandbox no se cobran. Por defecto: off. Sandbox y producción tienen claves independientes: conecta cada entorno con un código de activación de ese entorno. Mientras se usa el sandbox, los clientes ven Sandbox mode: no real money is charged. debajo del método de pago.
Activation Code: para conectar el entorno seleccionado arriba, pega un nuevo código de activación de 6 caracteres y haz clic en Save. Los códigos de producción se generan en el Satispay Business Dashboard, sección Online shop. Los códigos sandbox vienen con una cuenta sandbox de Satispay. El código se usa una sola vez y no se guarda. Deja el campo vacío para mantener la conexión actual.
Al guardar con un código, el módulo crea un par de claves RSA, envía la clave pública y el código a Satispay, y guarda el Key ID y las claves de ese entorno en la configuración de la tienda. Las claves privadas nunca se muestran. Si todo sale bien, la página muestra, por ejemplo, Satispay Live connected. Key ID: seguido del ID. Si Satispay rechaza el código, la página muestra Satispay activation failed: con el mensaje de Satispay y pide que compruebes que el código es de este entorno y que aún no se ha usado. Un código con caracteres que no sean letras o dígitos se rechaza antes de enviar nada. Guardar un código nuevo para un entorno sustituye su conexión anterior.
Notificaciones de pago
No hay nada que configurar en Satispay. Cada pago lleva su propia URL de callback, a la que Satispay llama cuando cambia el pago, y el módulo vuelve a leer el pago desde la API de Satispay antes de crear o cambiar un pedido. El campo Callback URL muestra un ejemplo de esta URL. Con URLs amigables tiene este aspecto: https://your-shop/module/wcp_satispay_gateway/callback?id_cart={cart}&payment_id={uuid}, posiblemente con un código de idioma como /en/. La URL debe ser accesible desde internet: sin autenticación básica delante. La callback funciona con la tienda en modo mantenimiento y no la bloquea la restricción por país de tu tienda.
Avanzado
Debug log: escribe las llamadas a la API y los eventos de pago en logs/satispay_p_debug.log.php, dentro de la carpeta del módulo. El archivo no se puede abrir desde la web. Las claves y los datos de los clientes no se registran. Los errores siempre se registran, incluso con esta opción desactivada. Por defecto: off.
Log: muestra el tamaño y las últimas entradas del registro. Haz clic en Clear log para vaciarlo.
Delete data on uninstall: si está activado, al desinstalar el módulo se eliminan los ajustes, las claves de Satispay de ambos entornos y el registro. Los pagos y reembolsos de Satispay guardados para los pedidos y el estado de pedido Satispay payment on hold siempre se conservan. Por defecto: off.
Finalización de compra
En el paso de pago el cliente elige el método de pago (por defecto Satispay) y confirma el pedido. El módulo crea un pago de Satispay por el total del carrito en euros, con el número del carrito como referencia, y envía al cliente a la página de pago de Satispay. En un ordenador el cliente escanea el código QR con la aplicación Satispay. En un teléfono el cliente confirma el pago en la aplicación. En este momento todavía no existe ningún pedido.
Después del pago el cliente vuelve a tu tienda. El pedido se marca como pagado solo cuando Satispay lo confirma: el módulo lee el pago desde la API de Satispay, comprueba que se creó para este carrito y compara su estado, su importe (en céntimos) y su moneda con el carrito. Esto ocurre tanto cuando Satispay llama a la URL de callback como cuando el cliente vuelve, lo que ocurra primero. Entonces se crea el pedido y el cliente ve la página estándar de confirmación del pedido. Si Satispay todavía no ha confirmado el pago cuando el cliente vuelve, una página Payment confirmation muestra Satispay has not confirmed your payment yet. The order will be updated automatically as soon as the confirmation arrives. y un botón Check again. La callback crea el pedido en cuanto llega.
Si el cliente sale de la página de Satispay sin pagar, el módulo cancela el pago en Satispay, de modo que la página abandonada ya no se puede pagar. El cliente vuelve a la finalización de compra con el mensaje Your Satispay payment was cancelled and nothing was charged. You can try again or choose another payment method. El mismo mensaje aparece cuando el cliente rechaza el pago en la aplicación. El carrito se conserva.
Antes de crear un nuevo pago de Satispay para el mismo carrito, se comprueba el anterior: un pago pendiente se cancela en Satispay y, si ya estaba pagado, el pedido se crea con él y no se realiza un segundo pago.
Si el pago no se puede iniciar, el cliente permanece en la finalización de compra con un mensaje breve: Satispay is not available at the moment. Please choose another payment method. cuando la tienda no está conectada o Satispay rechaza las claves, o Unable to create the Satispay payment. Please try again or choose another payment method. para otros errores. El motivo se escribe en el registro.
El módulo acepta solo pagos únicos en euros. No admite suscripciones, métodos de pago guardados, preautorizaciones ni vales de comida. No hay una comprobación programada de los pagos pendientes: si ni la llamada callback de Satispay ni el regreso del cliente llegan a tu tienda, no se crea ningún pedido, y el pago sigue visible en el Satispay Dashboard.
Pedidos y reembolsos
Estados del pedido
No order yet: el cliente fue enviado a Satispay y no ha pagado, o Satispay todavía no ha confirmado el pago. Solo existen el carrito y el pago de Satispay del módulo.
Payment accepted: el pago fue confirmado. El pago se registra con el ID del pago de Satispay como ID de transacción, y una nota muestra el pago de Satispay, el importe y cómo se verificó (callback, redirect or checkout).
Satispay payment on hold: Satispay informó de un importe o una moneda distintos del total del carrito (por ejemplo, el carrito se cambió en otra pestaña después de iniciar el pago), o el pago se aceptó después de que el pedido se cancelara. El dinero recibido se registra en el pedido, y la nota lo explica. Comprueba el pago en el Satispay Dashboard y después procesa el pedido o reembolsa el pago. Si más tarde se acepta otro pago del mismo carrito con el importe correcto, el pedido pasa a Payment accepted.
Refunded: el pago se reembolsó por completo a través del módulo.
Si se acepta un segundo pago para un pedido que ya está pagado, el pedido no cambia. Una nota pide que reembolses el pago duplicado desde el Satispay Dashboard. Una confirmación repetida nunca reabre un pedido cancelado o reembolsado.
Bloque de pago de Satispay
La página del pedido muestra un bloque Satispay payment con el ID del pago de Satispay, su estado, el importe pagado y reembolsado, una insignia Sandbox en los pagos sandbox, el historial de reembolsos, la lista Satispay payments of this cart con cada intento de pago y su entorno, y las Satispay notes del pedido.
Reembolsos
En el bloque Satispay payment introduce el importe (se rellena el importe que aún no se ha reembolsado), opcionalmente un motivo, y haz clic en Refund via Satispay. Confirma la pregunta Refund this amount through Satispay? This cannot be undone. Se admiten reembolsos totales y parciales. Necesitas el derecho a editar pedidos; el acceso a las páginas de Modules no es necesario. Los reembolsos están limitados al importe que Satispay cobró por el pago, así que después de una diferencia de importe puedes reembolsar hasta lo que el cliente realmente pagó, y no el total del pedido. El reembolso se envía al entorno en el que se hizo el pago (producción o sandbox), por lo que ese entorno debe seguir conectado. Un reembolso se considera realizado solo cuando Satispay lo acepta: un reembolso correcto se añade al historial de reembolsos y a las notas, con el ID de reembolso de Satispay y el motivo. Si Satispay no acepta el reembolso, el bloque muestra el error y no se registra ningún reembolso. Un reembolso total pone el pedido en Refunded. Un reembolso parcial no cambia el estado.
El módulo no crea notas de crédito. Los botones estándar de reembolso de PrestaShop en la página del pedido no devuelven dinero a través de Satispay. Los reembolsos hechos en el Satispay Dashboard no se registran en PrestaShop. Actualiza el pedido manualmente si hace falta.
Clave de licencia
El módulo funciona con una clave de licencia de VibeFox de vibefox.net. El bloque de licencia License — VibeFox Satispay Gateway es el primer bloque de Modules > Module Manager > VibeFox Satispay Gateway > Configure, por encima de los ajustes. Pega la clave en License key y haz clic en Activate. Después, el bloque muestra la clave enmascarada, el estado (por ejemplo, la fecha hasta la que la licencia está activa y tu dominio) y los botones Check now para volver a comprobar el estado, Change key para introducir otra clave y Remove key para quitar la clave de esta tienda. Debajo aparecen la línea Product: presta-payment-satispay y el enlace Manage licenses and domains in your account, que abre tu cuenta de vibefox.net. Solo los empleados con el permiso Configure para el módulo pueden cambiar la clave. Los textos del bloque siguen el idioma del back office (se incluyen inglés y ruso).
Si la clave no se acepta, el bloque indica el motivo, por ejemplo Key not found, This key belongs to another product, Domain limit reached o License expired on seguido de una fecha. Después de cambiar la dirección de la tienda, o después de liberar una plaza de dominio en tu cuenta, haz clic en Check now. Si no se puede contactar con el servidor de licencias, el módulo sigue funcionando con el último estado conocido.
Una clave funciona en un dominio: el dominio de la tienda principal, también en una configuración multitienda. Quitar la clave de la tienda no libera su plaza de dominio. Libera la plaza en tu cuenta de vibefox.net.
Sin una clave activa, Satispay no se muestra a los clientes en la finalización de compra. Si de todos modos se inicia un pago, el cliente ve This payment method is not available. Please choose another one. La tienda de PrestaShop no sabe que has iniciado sesión en el back office, así que el método de pago también se oculta para ti: puedes configurar el módulo antes de comprar una clave, pero no probarlo en la finalización de compra. Aparece un recordatorio en Modules > Module Manager, en la pestaña Alerts. Los pedidos existentes no se ven afectados: los pagos ya iniciados se siguen confirmando y los reembolsos funcionan.
Cuando una licencia caduca, el módulo sigue funcionando, pero las actualizaciones y el soporte requieren una renovación. El estado se vuelve a comprobar automáticamente mientras trabajas en el back office: una vez al día durante los primeros 14 días después de introducir la clave, y después una vez a la semana. No se necesita ningún cron job. Desinstalar o restablecer el módulo elimina siempre la clave de licencia y el estado de la licencia.
Solución de problemas
Satispay no aparece en la finalización de compra: comprueba que la licencia esté activa, que Enable/Disable esté activado, que el entorno en uso esté conectado (el campo Status muestra Connected para él) y que la moneda del carrito sea EUR. En Payment > Preferences comprueba que el módulo esté permitido para el euro, el país del cliente y el grupo del cliente.
El pago se realizó, pero no se creó ningún pedido: el pedido se crea cuando Satispay llama a tu tienda o cuando el cliente vuelve. Comprueba que tu tienda sea accesible desde internet, sin autenticación básica delante de la URL de callback, y activa Debug log para ver las llamadas en el campo Log. El pago es visible en el Satispay Dashboard.
La callback responde Payment status unavailable, retry later. o Not configured.: el módulo no pudo leer el pago desde Satispay, o el entorno del pago no está conectado. No se cambia ningún pedido. Satispay vuelve a llamar. Comprueba el estado de la conexión y el registro.
La callback responde Busy, retry later.: otra solicitud estaba confirmando el carrito en ese mismo momento, o no se pudo crear el pedido (por ejemplo, el módulo está desactivado). Satispay vuelve a llamar. El registro muestra el motivo.
La callback responde Unknown payment. o Missing or invalid payment_id.: el pago no fue creado por esta tienda para este carrito, o la solicitud no es una llamada callback de Satispay. No se cambia nada.
Falla la activación: los códigos de activación se pueden usar una sola vez. Comprueba que el código pertenezca al entorno seleccionado en Sandbox Mode (un código de producción para producción, un código sandbox para el sandbox), genera un código nuevo y guarda de nuevo. Si la página indica que no se pudo generar un par de claves RSA, pide a tu proveedor de hosting que active la extensión OpenSSL de PHP. Si no se pudo contactar con Satispay, comprueba que tu servidor pueda abrir conexiones HTTPS salientes.
Satispay desapareció de la finalización de compra al pasar de sandbox a producción: sandbox y producción usan claves distintas. Pega un código de activación de producción con Sandbox Mode desactivado y guarda.
El cliente ve This payment method is not available.: el método de pago no está permitido para el carrito (país, moneda o grupo de clientes en Payment > Preferences), está desactivado o el entorno en uso no está conectado.
El pedido queda en Satispay payment on hold tras el pago: lee las notas del bloque Satispay payment (véase Estados del pedido), comprueba el pago en el Satispay Dashboard y después procesa el pedido o reembolsa el pago.
El reembolso falla porque el entorno ya no está conectado: el pago se hizo en producción o en sandbox, y ese entorno ya no tiene claves. Conéctalo de nuevo con un código de activación, o reembolsa el pago desde el Satispay Dashboard.
El reembolso falla con Satispay did not accept the refund: Satispay devolvió un estado distinto de accepted. PrestaShop no registró el reembolso, y una nota lo indica. Compruébalo en el Satispay Dashboard.
Desinstalación
Ve a Modules > Module Manager, abre el menú junto a VibeFox Satispay Gateway y elige Uninstall. La clave de licencia y el estado de la licencia de este módulo siempre se eliminan. Si Delete data on uninstall está activado, se eliminan los ajustes, las claves de Satispay de ambos entornos y el registro. Si está desactivado, todos los ajustes y claves se conservan para una reinstalación posterior. Los pagos y reembolsos de Satispay guardados para los pedidos y el estado de pedido Satispay payment on hold siempre se conservan, por lo que los pedidos pagados antes se pueden reembolsar después de una reinstalación, una vez que el entorno vuelva a estar conectado. Los pedidos existentes conservan sus notas de pago y sus ID de transacción.
Satispay es una marca comercial de su respectivo titular. Este módulo no está afiliado a Satispay ni cuenta con su respaldo.
