VibeFox OpenPay for OpenCart — Ayuda
Requisitos
OpenCart: 3.0.x (probado en 3.0.5.0) o 4.0.2 y posteriores (probado en 4.1.0.3).
PHP: 8.0 o posterior.
HTTPS: tu tienda debe usar HTTPS, porque el formulario de la tarjeta está en tu página de finalización de compra.
OpenPay account: una cuenta de OpenPay de México, Colombia o Perú. Necesitas su Merchant ID, su clave privada (sk_...) y su clave pública (pk_...). Los paneles de sandbox y de producción tienen Merchant ID y claves distintos, y la extensión los mantiene separados.
Currency: el cliente debe pagar en una moneda que acepte el país de tu cuenta: México — MXN o USD, Colombia — COP o USD, Perú — PEN o USD. Para otras monedas, el método de pago no aparece en la finalización de compra.
VibeFox license key: se compra en vibefox.net. Una clave funciona en un solo dominio.
La tarjeta se introduce en tu página de finalización de compra, pero openpay.js la lee y la tokeniza en el navegador. Los campos de la tarjeta no tienen nombre y nunca se envían a tu servidor. Como el formulario de la tarjeta está en tu página, tu alcance de PCI DSS es SAQ A-EP; consulta con tu adquirente.
Instalación
El archivo descargado es un único zip con los paquetes de ambas versiones de OpenCart. Descomprímelo en tu ordenador. Contiene README.txt, el paquete de OpenCart 3 wcp_openpay_gateway-oc3-(version).ocmod.zip y el paquete de OpenCart 4 wcp_openpay_gateway.ocmod.zip. Instala solo el paquete de tu versión de OpenCart. La clave de licencia es la misma para ambas versiones.
OpenCart 3
1. En el panel de administración ve a Extensions > Installer, haz clic en Upload y elige el archivo wcp_openpay_gateway-oc3-(version).ocmod.zip. La extensión no tiene modificaciones OCMOD, así que Extensions > Modifications no necesita actualizarse. En lugar del instalador, también puedes copiar el contenido de la carpeta upload de este paquete en la carpeta raíz de tu tienda.
2. Ve a Extensions > Extensions y elige el tipo Payments. Busca VibeFox OpenPay Gateway y haz clic en Install (el botón verde +). Tu usuario administrador necesita el permiso para modificar la lista de extensiones de pago.
3. Haz clic en Edit (el botón del lápiz) para abrir la página de ajustes. Pega tu clave de licencia de VibeFox en License key, en el bloque de licencia de la parte superior de la página, y haz clic en Activate (ver Clave de licencia).
4. Elige el Account country e introduce las claves de sandbox y de producción (ver Configuración).
5. Recomendado: añade la URL del webhook en el panel de OpenPay (ver Configuración).
6. Activa Enable / Disable y haz clic en Save. Prueba un pago con las tarjetas de prueba del sandbox de OpenPay y, después, desactiva Sandbox mode para aceptar pagos reales. Conserva las claves de sandbox mientras puedas necesitar reembolsar pedidos de sandbox.
OpenCart 4
1. En el panel de administración ve a Extensions > Installer, haz clic en Upload y elige el archivo wcp_openpay_gateway.ocmod.zip. No cambies el nombre del archivo: OpenCart 4 toma el código de la extensión del nombre del archivo, y un paquete renombrado no funciona.
2. El paquete aparece en la lista de extensiones instaladas en la misma página. Haz clic en Install (el botón verde +) junto a él.
3. Ve a Extensions > Extensions y elige el tipo Payments. Busca VibeFox OpenPay Gateway, haz clic en Install (el botón verde +) y, después, en Edit (el botón del lápiz).
4. Introduce la clave de licencia, las claves de OpenPay y el webhook como en los pasos 3 a 6 de OpenCart 3. La página de ajustes y sus campos son los mismos en ambas versiones. Solo la URL del webhook es distinta (ver Webhook).
Una instalación nueva empieza con el método de pago desactivado y con el modo sandbox activado.
Configuración
Todos los ajustes están en la página de la extensión: Extensions > Extensions > Payments > VibeFox OpenPay Gateway > Edit. Las secciones aparecen a la izquierda; el botón Save situado debajo de la lista guarda toda la página. Encima de los ajustes, la página te avisa cuando las claves del modo actual están incompletas (el método de pago se oculta entonces en la finalización de compra) y cuando la moneda predeterminada de tu tienda no la acepta el país de cuenta seleccionado, y muestra Sandbox mode is enabled — no real charges are made. mientras el modo sandbox está activado. Sin el permiso para modificar la extensión, la página muestra los ajustes pero no puede guardarlos.
Al guardar, se comprueban las claves. El Merchant ID puede contener solo letras y dígitos, la clave privada debe empezar por sk_ y la clave pública por pk_. Un valor no válido no se guarda: se conserva el valor anterior y aparece un error, por ejemplo Sandbox: The private key must start with sk_. Lo mismo ocurre con un Sort Order que no sea un número entero (Sort Order must be a whole number — the previous value was kept.) y con un Total que no sea un número igual o mayor que 0. Los demás campos sí se guardan. Si el método de pago está activado pero las claves del modo actual están incompletas, también verás un mensaje que indica que la pasarela sigue oculta en la finalización de compra. Un Title vacío, o de más de 128 caracteres, se rechaza con Enter a title for the payment method (1 to 128 characters)., y entonces no se guarda nada.
OpenPay
Enable / Disable: Enable OpenPay card payments activa o desactiva el método de pago. Predeterminado: desactivado.
Title: el nombre del método de pago que ven los clientes en la finalización de compra. También es el nombre del método de pago que se guarda en el pedido. Predeterminado: Credit or debit card (OpenPay). Obligatorio, hasta 128 caracteres.
Description: el texto que se muestra encima del formulario de la tarjeta en el paso Confirm Order. Predeterminado: Pay securely with your credit or debit card. Es posible que tu banco te pida confirmar el pago (3D Secure).
Sort Order: la posición de OpenPay entre los métodos de pago de la finalización de compra. Déjalo vacío o introduce un número entero (se permiten números negativos).
Geo Zone: ofrece OpenPay solo para las direcciones de pago de la zona geográfica seleccionada. Predeterminado: All zones. Las zonas geográficas se configuran en System > Localisation > Geo Zones. En OpenCart 4, cuando la tienda no pide ninguna dirección de pago, se usa la dirección de envío.
Total: el total de la compra, en la moneda predeterminada de la tienda, que debe alcanzar un pedido para que se ofrezca OpenPay. Déjalo vacío para ofrecer OpenPay con cualquier total.
Cuenta de OpenPay
El Merchant ID, la clave privada (sk_) y la clave pública (pk_) están en tu panel de OpenPay, en Settings (Configuración). La sección incluye enlaces a los paneles de sandbox y de producción de México, Colombia y Perú.
Account country: el país de tu cuenta de OpenPay. Determina la API de OpenPay, la biblioteca openpay.js de ese país y las monedas aceptadas. Predeterminado: Mexico.
Sandbox mode: usa el sandbox de OpenPay (claves de prueba, sin cobros reales) y cambia tanto las claves como la API al sandbox. Mientras está activado, en la finalización de compra se muestra una insignia SANDBOX MODE. Predeterminado: activado. Desactívalo para aceptar pagos reales.
Sandbox Merchant ID: el Merchant ID del panel de sandbox, Settings (Configuración), claves de API.
Sandbox Private Key: la clave privada del sandbox. Empieza por sk_. Se usa solo en el servidor; nunca la compartas.
Sandbox Public Key: la clave pública del sandbox. Empieza por pk_. openpay.js la usa en el navegador para tokenizar la tarjeta.
Live Merchant ID: el Merchant ID del panel de producción, Settings (Configuración), claves de API.
Live Private Key: la clave privada de producción (sk_...).
Live Public Key: la clave pública de producción (pk_...).
Las claves privadas guardadas 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. Para eliminar una clave privada guardada, marca Clear the saved key on save debajo del campo y haz clic en Save.
Webhook
El webhook no es obligatorio, pero sí recomendable. Confirma los pagos cuando el cliente no vuelve de la página de 3D Secure, por ejemplo tras cerrar el navegador. En el panel de OpenPay ve a Settings > Webhooks y añade la URL que aparece en Webhook URL en esta sección. En OpenCart 3 tiene el aspecto de https://your-store/index.php?route=extension/payment/wcp_openpay_gateway/webhook y en OpenCart 4, el de https://your-store/index.php?route=extension/wcp_openpay_gateway/payment/wcp_openpay_gateway.webhook. Se genera a partir de la dirección de la tienda de tu instalación de OpenCart. Cópiala exactamente como la muestran los ajustes. Añade el webhook en el panel de cada modo que uses (sandbox y producción).
Cuando añades el webhook, OpenPay envía un código de verificación a esta URL. El código aparece en esta sección con la fecha en que llegó, para que puedas confirmar el webhook en el panel de OpenPay. Hasta entonces, la sección muestra No verification code received yet.
La extensión gestiona estos eventos:
OpenPay no firma los webhooks, así que la extensión nunca confía en la notificación en sí. Solo la usa para localizar el cargo y después lee el cargo desde la API de OpenPay con la clave privada del modo y del país de cuenta en que se hizo el pago. Una notificación de un cargo que esta tienda no creó se ignora. El webhook también funciona mientras la tienda está en modo de mantenimiento: OpenCart 3 deja pasar las solicitudes de las extensiones de pago, y en OpenCart 4 la extensión añade una acción de inicio que deja pasar el webhook y el regreso del cliente desde 3D Secure.
Pedidos
OpenCart crea el pedido en el paso Confirm Order sin estado (pedido incompleto). El pedido recibe un estado solo después de que OpenPay haya confirmado el cargo. Un pago con tarjeta rechazado o una verificación 3D Secure fallida deja el pedido sin estado, una nota explica el motivo y el cliente puede volver a pagar. Cada campo siguiente muestra tus estados de pedido de OpenCart; puedes crear tus propios estados en System > Localisation > Order Statuses.
Order Status After Payment: OpenPay confirmó el cargo y su importe y su moneda coinciden con el pedido. Predeterminado: Processing.
Awaiting OpenPay Payment: el cargo está en curso (aún no capturado); el webhook lo completa o lo marca como fallido más tarde. Predeterminado: Pending.
OpenPay Payment On Hold: OpenPay cobró un importe o una moneda distintos de los del pedido, o un cargo se completó después de que el pedido se hubiera cancelado. Predeterminado: Pending.
Payment Error Status: el cargo de un pedido en espera de OpenPay o retenido falló, se canceló o caducó. Predeterminado: Failed.
Refunded Status: el cargo se reembolsa por completo desde la página del pedido. Los reembolsos parciales solo añaden una nota. Predeterminado: Refunded.
Avanzado
Debug log: registra los pasos del pago en wc_opy_debug.log.php, en la carpeta de registros de OpenCart (storage/logs). El archivo no se puede abrir desde la web y, al llegar a 5 MB, se mueve a wc_opy_debug.old.log.php. Los errores y las advertencias se registran aunque esté desactivado. Las claves, los datos de la tarjeta y los datos del cliente nunca se registran. Predeterminado: desactivado.
Log: muestra el tamaño y las entradas más recientes del registro. Haz clic en Clear log para vaciarlo.
Delete data on uninstall: si está activado, al desinstalar la extensión se eliminan los ajustes de la pasarela, el código de verificación del webhook guardado y el registro. Los registros de cargos de OpenPay de los pedidos forman parte del historial de pagos y siempre se conservan, de modo que los pedidos pueden reembolsarse tras una reinstalación. Predeterminado: desactivado.
Importar / Exportar
Export: Download JSON guarda los ajustes en un archivo JSON. Las claves privadas no se exportan.
Import: pega el JSON exportado previamente y haz clic en Import para restaurar los ajustes. Las claves privadas guardadas se conservan.
Finalización de compra
En el paso Payment Method el cliente elige el método de pago (por defecto Credit or debit card (OpenPay)). En el paso Confirm Order el cliente ve tu descripción y el formulario de la tarjeta: Cardholder name, Card number, Expiry (MM/YY) y Card code (CVV). En el modo sandbox, el formulario muestra SANDBOX MODE — Test environment. No real charges will be made. OpenCart crea el pedido en este paso, todavía sin estado. En OpenCart 4 el cliente elige el método de pago con el botón Choose del bloque del método de pago, en la ventana Payment method options; el formulario de la tarjeta está en la sección de confirmación, al final de la página de finalización de compra, encima de Confirm Order. Cuando el cliente hace clic en Confirm Order, openpay.js convierte la tarjeta en un token de un solo uso en el navegador, y la biblioteca antifraude añade un ID de sesión del dispositivo. Solo estos dos valores se envían a tu tienda. Si el formulario está incompleto, aparece Please fill in all card fields. debajo del formulario.
La extensión crea entonces el cargo con 3D Secure por el total del pedido en la moneda del pedido y envía al cliente a la página 3D Secure de su banco, servida por OpenPay. Cada intento recibe su propia referencia de pedido en OpenPay. La descripción del cargo es Order #, el número del pedido y el nombre de tu tienda. El nombre, el correo electrónico y el teléfono del cliente de la dirección de pago se envían a OpenPay; no se crea ninguna cuenta de cliente en OpenPay.
Cuando el cliente regresa, la extensión lee el cargo desde la API de OpenPay. El pedido se marca como pagado solo cuando OpenPay lo confirma: el cargo debe pertenecer a este pedido, estar completado y coincidir exactamente con el total y la moneda del pedido. Después, el pedido recibe su estado de la forma estándar de OpenCart, con los correos habituales del pedido y la actualización del inventario, y el cliente ve la página de pedido completado de OpenCart con Your card payment has been received. Si OpenPay indica que el cargo está en curso, el pedido recibe el estado Awaiting OpenPay Payment y la página muestra We are confirming your card payment with OpenPay. The order will be updated automatically — please do not pay again. Si el resultado todavía no se conoce, una página Payment confirmation muestra el mismo texto con un botón Check again y un botón Back to checkout; el webhook establece el estado del pedido en cuanto llega. Si un cargo en curso falla más tarde, la página de éxito muestra Your OpenPay card payment was not completed. Please contact us about this order.
Si la tarjeta es rechazada o falla 3D Secure, el pedido permanece sin estado, se añade una nota y el cliente vuelve a la finalización de compra con The card payment was not completed (declined or 3-D Secure failed). Please try again or use another card. El carrito se conserva. En OpenCart 4 este mensaje se muestra encima de la página de finalización de compra. OpenCart 3 crea un pedido nuevo cada vez que se muestra el paso Confirm Order; OpenCart 4 mantiene un solo pedido para la finalización de compra y lo actualiza, de modo que el cliente paga el mismo pedido de nuevo con un nuevo intento. Antes de un nuevo intento, la extensión comprueba el cargo anterior del carrito: si en realidad se pagó, ese pedido recibe su estado sin un segundo cobro; si todavía está en curso, el cliente ve A previous payment for this order is still being processed. Please do not pay again — the order will be updated automatically.; si no se puede comprobar su estado, no se realiza ningún nuevo cargo y el cliente ve We could not confirm the status of your previous payment attempt. Please try again in a few minutes. Un carrito que ya está pagado nunca vuelve a cobrarse.
En OpenCart 4 el pedido se mantiene en la finalización de compra hasta que se muestra la página de éxito. Si ese pedido se cerró entretanto (por ejemplo, porque su cargo falló después de estar pendiente de pago, o porque lo cancelaste o reembolsaste), el cliente vuelve a la finalización de compra con This order can no longer be paid. Please reload the checkout page and confirm the order again., y el siguiente Confirm Order paga un pedido nuevo. Si ese pedido ya tiene un estado y el carrito ahora tiene otros productos o cantidades, el cliente también vuelve a la finalización de compra, y el carrito nuevo recibe un pedido nuevo.
Las tarjetas rechazadas reciben un mensaje claro, por ejemplo The card has insufficient funds. Please use another card., The card has expired. Please use another card. o The security code (CVV) is not valid. Please check it and try again. Los errores técnicos de OpenPay nunca se muestran a los clientes; se envían al registro y a las notas del pedido.
El método de pago se oculta en la finalización de compra cuando está desactivado, cuando las claves del modo actual están incompletas o cuando el cliente paga en una moneda que el país de la cuenta no acepta.
La extensión acepta únicamente pagos con tarjeta, cobrados de inmediato. No tiene tarjetas guardadas, suscripciones, meses sin intereses (MSI) ni pagos a plazos, pagos con puntos de tarjeta, pagos en efectivo, SPEI, PSE ni CoDi, y no ofrece autorización y captura por separado.
Pedidos y reembolsos
Estados del pedido
No status (missing order): el cliente está en la página 3D Secure, no ha terminado el pago o la tarjeta fue rechazada. En Sales > Orders estos pedidos solo se muestran con el filtro Order Status ajustado en Missing Orders.
En OpenCart 4 un pedido no pagado de la finalización de compra puede recibir el estado Voided, que OpenCart 4 asigna cuando el cliente vuelve al paso Confirm Order. La extensión trata ese pedido como un pedido sin estado, y un pago posterior sigue confirmándolo.
Order Status After Payment (default Processing): el pago fue confirmado. Una nota muestra el ID del cargo de OpenPay y el modo (producción o sandbox).
Awaiting OpenPay Payment (default Pending): OpenPay informa de que el cargo está en curso (aún no capturado). El pedido pasa a Order Status After Payment cuando el cargo se completa, o a Payment Error Status si falla.
OpenPay Payment On Hold (default Pending): OpenPay informa de un cargo completado con un importe o una moneda distintos de los del pedido (el pedido no se marca como pagado y la nota muestra la diferencia), o de un pago recibido para un pedido que ya había sido cancelado o reembolsado. Revisa el pedido y tramítalo o reembolsa el pago.
Payment Error Status (default Failed): un cargo en curso falló, se canceló o caducó.
Refunded Status (default Refunded): el cargo se reembolsó por completo a través de la extensión.
Si llega un segundo cargo completado para un pedido o un carrito que ya está pagado, el pedido no se modifica. Una nota que empieza por OpenPay WARNING en el pedido pagado te pide reembolsar el duplicado en el panel de OpenPay.
Las notas son entradas del History del pedido que el cliente no ve.
Pestaña VibeFox OpenPay Gateway
En Sales > Orders abre un pedido pagado con OpenPay. En la parte inferior de la página del pedido, junto a History y Additional, la pestaña VibeFox OpenPay Gateway muestra el ID del cargo, el estado del cargo, el entorno y el país de la cuenta con una etiqueta Sandbox en los pagos de sandbox, los importes Charged / order, el importe reembolsado, el formulario de reembolso, el historial de reembolsos y las OpenPay notes del pedido. La pestaña se muestra a los usuarios que tienen acceso a la extensión.
Reembolsos
Para cuentas de México y Perú: en la pestaña introduce el Amount (se rellena el importe que aún no se ha reembolsado), opcionalmente un Reason (optional), y haz clic en Refund via OpenPay. Confirma la pregunta Refund this amount through OpenPay? This cannot be undone. Se admiten reembolsos totales y parciales, hasta el importe que cobró OpenPay. Necesitas el permiso para modificar la extensión (se configura en System > Users > User Groups). El reembolso se envía con las claves del modo y del país de cuenta en que se hizo el cargo, así que esas claves deben estar configuradas. Si OpenPay no acepta el reembolso, la pestaña muestra el error, por ejemplo OpenPay refund failed: ..., y no se registra ningún reembolso. Un reembolso correcto se añade al historial de reembolsos y a las notas, con el ID de reembolso de OpenPay. Un reembolso total cambia el pedido a Refunded Status sin notificar al cliente y sin devolver los productos al inventario, igual que un cambio manual de estado. Un reembolso parcial no cambia el estado. Los reembolsos están disponibles cuando OpenPay ha confirmado el pago; un pedido retenido por una diferencia de importe no se reembolsa a través de la extensión.
OpenPay Colombia no admite reembolsos de tarjeta a través de la API, igual que en las integraciones oficiales de OpenPay. Para los cargos colombianos, la pestaña no ofrece formulario de reembolso y explica el motivo; reembolsa el cargo en el panel de OpenPay.
Las devoluciones de productos en Sales > Returns no devuelven dinero a través de OpenPay.
Los reembolsos y contracargos realizados en el panel de OpenPay llegan por webhook y se añaden a las notas una sola vez. El estado del pedido no cambia automáticamente. Actualízalo manualmente si es necesario.
Clave de licencia
La extensión funciona con una clave de licencia de VibeFox de vibefox.net. El bloque de licencia License — VibeFox OpenPay Gateway es el primer bloque de Extensions > Extensions > Payments > VibeFox OpenPay Gateway > Edit, 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 eliminar la clave de esta tienda. Debajo aparecen la línea Product: opencart-payment-openpay y el enlace Manage licenses and domains in your account, que abre tu cuenta de vibefox.net. Solo los usuarios administradores con el permiso Modify para la extensión pueden cambiar la clave. Los textos del bloque siguen el idioma del panel de administración (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 el servidor de licencias no está disponible, la extensión sigue funcionando con el último estado conocido.
Una clave funciona en un solo dominio: la dirección de la tienda de la configuración de OpenCart. Eliminar la clave de la tienda no libera su plaza de dominio. Libérala en tu cuenta de vibefox.net.
Sin una clave activa, OpenPay no se muestra a los clientes en la finalización de compra. Si de todas formas se inicia un pago, el cliente ve This payment method is not available. Please choose another one. Un usuario administrador que haya iniciado sesión en el panel de administración en el mismo navegador sigue viendo el método de pago en la tienda, marcado como (unlicensed — visible to admins only), para que puedas configurar y probar la extensión antes de comprar una clave. En OpenCart 4 esta vista previa no está disponible: la tienda no ve el inicio de sesión del panel de administración, así que sin una clave activa el método de pago queda oculto para todos. Después de abrir una vez la página Edit, aparece un recordatorio en el Dashboard del panel de administración. Ciérralo con × para ocultarlo durante 7 días. Los pedidos existentes no se ven afectados: los pagos ya iniciados se siguen confirmando y los reembolsos funcionan.
Cuando una licencia caduca, la extensión sigue funcionando, pero las actualizaciones y el soporte requieren una renovación. El estado se vuelve a comprobar automáticamente al abrir el Dashboard o la página Edit del panel de administración: una vez al día durante los primeros 14 días después de introducir la clave y, después, una vez por semana. No se necesita ninguna tarea cron. Al desinstalar la extensión siempre se eliminan la clave de licencia y el estado de la licencia.
Solución de problemas
OpenPay no aparece en la finalización de compra: comprueba que la licencia esté activa, que Enable / Disable esté activado y que el modo actual tenga las tres claves: las claves de sandbox en modo sandbox y las claves de producción en modo producción. Comprueba que el cliente pague en una moneda aceptada por el Account country (México: MXN, USD; Colombia: COP, USD; Perú: PEN, USD). La página de ajustes muestra un aviso en cada caso. Comprueba también que la dirección de pago esté en la Geo Zone seleccionada y que el pedido alcance el Total configurado.
El pago se realizó, pero el pedido sigue sin estado: el cliente no volvió desde la página 3D Secure y el webhook no funciona. Comprueba que la URL del webhook esté añadida en el panel de OpenPay del modo que utilizas, exactamente como la muestran los ajustes, con los eventos indicados arriba. Comprueba que las claves del modo en el que se hizo el pago estén completas: sin ellas, el webhook responde not configured y OpenPay lo reintenta más tarde. El pedido también recibe su estado cuando el cliente vuelve a la tienda o cuando intenta pagar de nuevo el mismo carrito.
El webhook responde ignored (unknown order): el cargo no lo creó esta tienda, por ejemplo un cargo de otra tienda en la misma cuenta de OpenPay. No se cambia nada.
El webhook responde verification failed: no se pudo acceder a la API de OpenPay para leer el cargo. OpenPay reintenta el webhook.
El webhook responde busy: otra solicitud estaba actualizando el carrito en ese mismo momento, o no se pudo establecer el estado del pedido. OpenPay reintenta el webhook. Activa Debug log para ver el motivo.
La URL del webhook muestra invalid body en el navegador: es normal. La URL solo acepta notificaciones de OpenPay.
El cliente ve The secure card form could not be loaded: openpay.js o la biblioteca antifraude de OpenPay no se cargaron en el navegador, o no se pudo crear el ID de sesión del dispositivo. Pídele al cliente que recargue la página y vuelva a intentarlo.
El cliente ve The payment could not be processed right now: OpenPay rechazó la solicitud o no respondió. El motivo está en el registro y en las notas del pedido. Una causa típica es un Merchant ID o una clave privada incorrectos. Si OpenPay no respondió, comprueba el cargo en el panel de OpenPay antes de que el cliente vuelva a pagar.
El cliente ve This test card cannot be used for real payments: se usó una tarjeta de prueba del sandbox mientras el modo sandbox está desactivado.
El cliente ve Billing email is required for OpenPay: el pedido no tiene una dirección de correo electrónico válida.
El pedido está en el estado OpenPay Payment On Hold tras el pago: lee las OpenPay notes de la pestaña (ver Estados del pedido) y luego tramita el pedido o reembolsa el pago.
El reembolso falla con un mensaje sobre el modo: el pedido se pagó en modo sandbox o en modo producción, y las claves de ese modo no están configuradas. Introdúcelas y vuelve a intentarlo.
El reembolso falla con The order is being updated right now: un webhook u otra solicitud estaba actualizando el pedido en ese mismo momento. Inténtalo de nuevo en unos instantes.
Desinstalación
Ve a Extensions > Extensions, elige el tipo Payments y haz clic en Uninstall (el botón rojo −) junto a VibeFox OpenPay Gateway. La clave de licencia y el estado de licencia de esta extensión siempre se eliminan. OpenCart siempre elimina los ajustes propios de la extensión: Enable / Disable, Sort Order, Geo Zone, Total y los estados de pedido de la sección Orders, que vuelven a sus valores predeterminados al reinstalar. También se elimina el evento de OpenCart de la extensión (en OpenCart 4, sus eventos y su acción de inicio, que deja pasar el webhook y el regreso desde 3D Secure en modo de mantenimiento). Si Delete data on uninstall está activado, se eliminan los demás ajustes de la pasarela (título, descripción, país de cuenta, modo sandbox, claves, registro), el código de verificación del webhook guardado y el registro. Si está desactivado, se conservan para una reinstalación posterior. Los registros de cargos y reembolsos de OpenPay siempre se conservan, así que los pedidos pagados anteriormente pueden reembolsarse tras una reinstalación. Los pedidos existentes conservan sus notas de pago.
En OpenCart 4, para eliminar también los archivos de la extensión, ve a Extensions > Installer después de desinstalar y haz clic en Uninstall (el botón naranja −) junto a VibeFox OpenPay Gateway en la lista de extensiones instaladas, y después en Delete (el botón rojo de papelera) para eliminar el paquete subido.
OpenPay es una marca comercial de su respectivo titular. Esta extensión no está afiliada ni respaldada por OpenPay.
