VibeFox DPO for PrestaShop — Ayuda
Requisitos
PrestaShop: 8.0 a 9.x.
PHP: 8.0 o posterior con la extensión SimpleXML. El módulo no permite la instalación sin ellas.
Cuenta de DPO Pay: necesitas el Company Token y el Service Type ID de tu cuenta de comerciante de DPO. DPO los emite cuando se abre la cuenta; pídelos a tu gestor de cuenta de DPO o en dpogroup.com. DPO también puede proporcionar una cuenta de prueba con su propio token y tipo de servicio. No hay un servidor de pruebas aparte: DPO usa la misma dirección de API para cuentas de prueba y en vivo, y la cuenta se elige según el token.
Moneda: la moneda de la tienda debe ser admitida por tu cuenta DPO. DPO acepta como máximo 2 decimales, así que los totales de carrito con 3 decimales (por ejemplo KWD 12.345) no se pueden cobrar.
Cron del servidor: un trabajo cron que llama a la URL de comprobación del módulo cada 15 minutos (ver Configuración).
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 DPO Pay Gateway en la lista de módulos más adelante y haz clic en Configure.
3. Pega 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 (ver Clave de licencia).
4. Introduce el Company Token y el Service Type de prueba y/o en vivo (ver Configuración).
5. Envía la URL de notificación push que muestra la página Configure al soporte de DPO y pídeles que la configuren para tu cuenta. Añade la URL del cron a los trabajos cron de tu servidor.
6. Activa Enable/Disable y haz clic en Save. Haz un pedido de prueba en modo de prueba y luego desactiva Test mode para aceptar pagos reales.
Al instalarse, el módulo crea el estado de pedido DPO 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.
Configuración
Todos los ajustes están en la página del módulo: Modules > Module Manager > VibeFox DPO Pay Gateway > Configure. Cada sección tiene su propio botón Save, que guarda toda la página. Cuando el módulo está activado pero el Company Token o el Service Type del modo seleccionado están vacíos, la página te avisa de que el método de pago está oculto en el checkout, y al guardar aparece el mismo aviso. Mientras el modo de prueba está activado, la página muestra Test mode is on: payments are created with the test account credentials.
DPO Pay
Enable/Disable: Enable DPO Pay activa o desactiva el método de pago. Por defecto: desactivado.
Title: el nombre del método de pago que ven los clientes en el checkout. También es el nombre del método de pago guardado en el pedido. Por defecto: DPO Pay. Obligatorio.
Description: el texto que se muestra debajo del método de pago en el checkout. Por defecto: Pay securely by card or mobile money on the DPO Pay payment page.
Credenciales de API
DPO emite un Company Token y un Service Type ID para tu cuenta de comerciante, y otros distintos para una cuenta de prueba. Pídelos a tu gestor de cuenta de DPO o en dpogroup.com.
Test mode: cuando está activado, los nuevos pagos se crean con el Company Token y el Service Type de prueba. Por defecto: activado. Desactívalo para aceptar pagos reales con las credenciales en vivo. Las comprobaciones de estado y las cancelaciones de pagos existentes siempre usan la cuenta con la que se creó el pago.
Test Company Token: el Company Token de tu cuenta de prueba de DPO.
Test Service Type: el Service Type ID numérico de tu cuenta de prueba de DPO.
Live Company Token: el Company Token de tu cuenta de comerciante de DPO en vivo.
Live Service Type: el Service Type ID numérico de tu cuenta de comerciante de DPO en vivo.
Los Company Token guardados nunca se vuelven a mostrar. El campo queda vacío y muestra Saved — leave empty to keep it. Escribe un valor nuevo solo si quieres cambiarlo. El Service Type debe ser un número. Cualquier otro valor no se guarda: la página muestra un aviso y conserva el valor anterior.
Clear saved Company Tokens: marca un token y haz clic en Save para eliminarlo. Un campo vacío mantiene el valor guardado.
Notificaciones de pago
Push notification URL: la notificación push avisa a tu tienda de inmediato de que se ha realizado un pago, incluso si el cliente cierra el navegador después de pagar. La URL no se configura en un panel: pide al soporte de DPO que la configure para tu cuenta. Con URL amigables tiene este aspecto: https://your-shop/module/wcp_dpo_pay/notify, posiblemente con un código de idioma. Cópiala exactamente como la muestra la página. Debe ser accesible desde internet, sin modo de mantenimiento, cortafuegos ni autenticación básica delante.
Las notificaciones push de DPO no llevan firma, así que su contenido nunca se da por bueno. El módulo solo las usa para encontrar el pago por su token de transacción y después comprueba el resultado con el propio DPO. Un token que tu tienda no creó se rechaza sin ninguna petición a DPO.
Scheduled status re-check (cron): llama a esta URL cada 15 minutos desde un trabajo cron del servidor, por ejemplo con curl. Los pagos no confirmados se vuelven a comprobar con DPO 15 minutos después de la redirección y de nuevo después del límite de tiempo de pago. La URL contiene un token secreto, así que manténla privada. Sin la URL de notificación push y el cron, el pedido solo se crea cuando el cliente vuelve a la tienda después de pagar.
Pedidos
Successful payment status: el estado del pedido tras un pago correcto verificado.
Las diferencias de importe o moneda, los pagos solo autorizados y las transacciones sobrepagadas o pagadas de menos siempre pasan a DPO payment on hold.
Avanzado
Logging: escribe las llamadas a la API y las notificaciones en logs/dpo_p_debug.log.php en la carpeta del módulo. El archivo no se puede abrir desde la web. Los errores siempre se registran. Los tokens se enmascaran y no se registran datos de clientes. Por defecto: desactivado.
Log: muestra el tamaño y las entradas más recientes del registro. Haz clic en Clear log para vaciarlo.
Delete data: cuando está activado, al desinstalar el módulo se eliminan sus ajustes y el registro. Los datos de DPO guardados para los pedidos y el estado de pedido DPO payment on hold siempre se conservan. Desinstalar sin esta opción nunca borra datos. Por defecto: desactivado.
Checkout
En el paso de pago el cliente elige el método de pago (por defecto DPO Pay) y ve la nota You will be redirected to the secure DPO Pay payment page. Tras confirmar, el módulo crea una transacción DPO por el total del carrito en la moneda del carrito, con el número de carrito y el nombre de tu tienda como descripción, y envía al cliente a la página de pago de DPO. El nombre, el correo electrónico, el teléfono y la dirección de facturación del cliente se envían para rellenar previamente la página. Allí el cliente paga con cualquier método habilitado en tu cuenta DPO. El enlace de pago es válido durante 5 horas. En este punto todavía no existe ningún pedido.
Tras pagar, el cliente vuelve a tu tienda. El pedido se marca como pagado solo cuando DPO lo confirma: el módulo pregunta a DPO por el resultado de la transacción cuando el cliente vuelve, cuando llega una notificación push y en las comprobaciones programadas. Entonces se crea el pedido y el cliente ve la página estándar de confirmación de pedido.
Si el pago no se confirma, el cliente vuelve al checkout con uno de estos mensajes. El carrito se conserva.
Si el cliente hace clic en el botón de la página de DPO para volver a la tienda, la transacción se comprueba primero. Si se pagó, se crea el pedido. Si no, se cancela en DPO y el cliente vuelve al checkout con el carrito.
Cuando el cliente paga de nuevo por el mismo carrito, primero se comprueba la transacción DPO anterior. Si se pagó, el pedido se crea sin un segundo cobro. Si todavía se está procesando, el cliente ve Your previous payment for this order is still being processed by DPO. Please wait a few minutes before trying again. Si no, la transacción antigua se cancela en DPO y se crea una nueva.
Si DPO no puede iniciar el pago, el cliente permanece en el checkout con un mensaje breve elegido según el código de error de DPO, por ejemplo DPO Pay does not support the currency of this order. Please choose another payment method. o The amount exceeds the limit allowed by DPO Pay. Please choose another payment method or contact us. Otros errores muestran DPO Pay is temporarily unavailable. Please try again or choose another payment method. El motivo técnico se escribe en el registro.
La notificación push y la URL del cron funcionan mientras la tienda está en modo de mantenimiento y no están bloqueadas por la restricción de países de tu tienda.
El módulo acepta solo pagos únicos en la página de DPO. No tiene reembolsos desde la tienda, ni tarjetas guardadas, ni suscripciones o pagos recurrentes, ni campos de tarjeta en tu sitio, ni captura de pagos solo autorizados.
Pedidos
Estados del pedido
No order yet: el cliente fue enviado a DPO y no ha pagado, el pago fue rechazado o cancelado, o DPO aún no ha confirmado el pago. Solo existe el carrito.
Payment accepted, Delivered or DPO payment on hold: el pago fue verificado. El estado sigue a Successful payment status. El pago se registra con el token de la transacción DPO como ID de transacción. Una nota privada en la página del pedido muestra el importe, la moneda, el código de aprobación y el inicio del token.
DPO payment on hold after payment: DPO confirmó un pago, pero el importe o la moneda difieren del carrito, el pago solo está autorizado y no capturado, la transacción fue sobrepagada o pagada de menos, o el cliente había cancelado el pago o el pedido ya estaba cancelado. La nota privada explica el motivo. Revisa la transacción en el portal de DPO. Captura o anula un pago solo autorizado en el portal de DPO y luego actualiza el estado del pedido.
Cancelled: cuando cancelas un pedido no pagado del módulo (por ejemplo, uno en espera por un pago solo autorizado), su transacción DPO abierta también se cancela en DPO.
Un resultado posterior de rechazo nunca cambia un pedido, y los resultados de transacciones antiguas nunca hacen fallar el intento actual. Si DPO confirma un segundo pago correcto para un pedido que ya está pagado, el pedido no se modifica y recibe una nota sobre un posible pago doble, para que lo reembolses en el portal de DPO. Un pedido pagado o reembolsado nunca se vuelve a abrir.
Reembolsos
Los reembolsos desde la tienda no están disponibles en esta versión. Reembolsa el pago en el portal de comerciante de DPO y luego cambia el estado del pedido en PrestaShop.
Clave de licencia
El módulo funciona con una clave de licencia de VibeFox de vibefox.net. El bloque de licencia License — VibeFox DPO Pay Gateway es el primer bloque de Modules > Module Manager > VibeFox DPO Pay Gateway > Configure, encima de los ajustes. Pega la clave en License key y haz clic en Activate. Después, el bloque muestra la clave oculta, 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-dpo y el enlace Manage licenses and domains in your account, que abre tu cuenta de vibefox.net. Solo los empleados con el permiso Configure del 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 un hueco de dominio en tu cuenta, haz clic en Check now. Si el servidor de licencias no responde, el módulo sigue funcionando con el último estado conocido.
Una clave funciona en un solo dominio: el dominio de la tienda principal, también en una configuración multitienda. Quitar la clave de la tienda no libera su hueco de dominio. Libera el hueco en tu cuenta de vibefox.net.
Sin una clave activa, DPO Pay no se muestra a los clientes en el checkout. 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 el checkout. 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.
Cuando una licencia caduca, el módulo sigue funcionando, pero las actualizaciones y el soporte necesitan una renovación. El estado se comprueba de nuevo 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 hace falta 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
DPO Pay does not appear at checkout: comprueba que la licencia está activa, que Enable/Disable está activado y que el Company Token y el Service Type del modo seleccionado están definidos: los campos de prueba en modo de prueba, los campos en vivo en caso contrario. La página de ajustes muestra un aviso cuando faltan. En Payment > Preferences comprueba que el módulo está permitido para la moneda del carrito, el país del cliente y el grupo del cliente.
The payment went through, but no order was created: probablemente la URL de notificación push no está configurada para tu cuenta de DPO y el cliente no volvió a la tienda. Pide al soporte de DPO que configure la URL mostrada en los ajustes y comprueba que el cron llama a la URL de comprobación cada 15 minutos. Activa Logging y revisa el campo Log en la página del módulo.
Push notification answers Unknown transaction: el token de la transacción no pertenece a un pago de DPO Pay de esta tienda, por ejemplo cuando la notificación proviene de otra tienda de la misma cuenta de DPO.
Push notification answers Verification failed: no se pudo contactar con DPO para comprobar el pago, otra solicitud estaba procesando el carrito en el mismo momento, o no se pudo crear el pedido (por ejemplo, el módulo está desactivado). DPO repite la notificación y la comprobación programada también confirma el pedido. El motivo está en el registro.
The push URL shows Method not allowed in the browser: es normal. La URL solo acepta peticiones de DPO.
The cron URL answers Forbidden: el token de la URL es incorrecto. Copia la URL de nuevo desde la página Configure. Una llamada correcta responde OK checked= y el número de pagos comprobados.
The Service Type is not saved: debe ser el Service Type ID numérico de DPO.
The customer sees DPO Pay is temporarily unavailable: DPO rechazó crear la transacción, por ejemplo por un Company Token o Service Type incorrecto, o un token del otro modo. El código de resultado de DPO está en el registro.
The customer sees that DPO accepts at most 2 decimal places: el total del carrito tiene 3 decimales. DPO no puede cobrar esos importes.
The customer sees This order has already been paid with DPO Pay: DPO rechazó un segundo pago para el mismo carrito. Comprueba el pago en el portal de DPO y el pedido en PrestaShop.
Order is DPO payment on hold after payment: lee la nota privada en la página del pedido (ver Estados del pedido) y luego revisa la transacción en el portal de DPO.
Los desarrolladores pueden cambiar los datos del cliente enviados a DPO con el hook actionWcpDpoPayCustomerData y el límite de tiempo de pago con actionWcpDpoPayPaymentTimeLimit.
Desinstalación
Ve a Modules > Module Manager, abre el menú junto a VibeFox DPO Pay Gateway y elige Uninstall. La clave de licencia y el estado de la licencia de este módulo siempre se eliminan. Si Delete data está activado, se eliminan los ajustes del módulo y el registro. Si está desactivado, todos los ajustes se conservan para una reinstalación posterior. Los datos de DPO guardados para los pedidos y el estado de pedido DPO payment on hold siempre se conservan, así que las notificaciones tardías de pagos antiguos siguen funcionando tras una reinstalación. Los pedidos existentes conservan sus notas de pago y los IDs de transacción.
DPO Pay es una marca comercial de su respectivo titular. Este módulo no está afiliado ni respaldado por DPO Pay.
