VibeFox Hubtel for OpenCart — Ayuda
Requisitos
OpenCart: 3.0.x (probado con 3.0.5.0) u OpenCart 4.0.2 o posterior (probado con 4.1.0.3).
PHP: 8.0 o posterior con la extensión cURL.
Moneda: solo cedi ghanés (GHS). La forma de pago se oculta en la finalización de compra cuando la moneda del pedido no es GHS. Mantén en 2 el número de decimales de la moneda GHS, porque Hubtel cobra en pesewas enteros.
Cuenta de Hubtel: una cuenta de empresa en Hubtel con claves de API (API ID y API Key) y el número de cuenta de comerciante (POS Sales ID). Las claves están en el panel de empresa de Hubtel en bo.hubtel.com, en Programmable keys.
Lista blanca de IP: Hubtel responde a su Transaction Status API solo desde direcciones IP de servidor incluidas en la lista blanca. Pide a Hubtel (tu gestor de cuenta o support@hubtel.com) que incluya en la lista blanca la dirección IP pública de tu servidor web. Hasta entonces, los pagos no se pueden confirmar y los pedidos se quedan sin estado.
Sin entorno de prueba: Hubtel no tiene sandbox público. Todos los pagos son reales.
Cron: se recomienda una tarea cron en tu servidor que llame a la URL cron de la extensión cada 5 minutos para las comprobaciones de pago en segundo plano (véase Configuration).
Clave de licencia de VibeFox: se compra en vibefox.net. Una clave funciona en un solo dominio.
Instalación
La descarga es un único archivo ZIP con los paquetes para ambas versiones de OpenCart. Descomprímelo en tu ordenador. Contiene README.txt, el paquete de OpenCart 3 wcp_hubtel_pay-oc3-(version).ocmod.zip y el paquete de OpenCart 4 wcp_hubtel_pay.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 la administración, ve a Extensions > Installer, haz clic en Upload y elige el archivo wcp_hubtel_pay-oc3-(version).ocmod.zip. La extensión no tiene modificaciones OCMOD, así que no hace falta actualizar Extensions > Modifications. En lugar del instalador, 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 Hubtel Pay Gateway y haz clic en Install (el botón verde +). Tu usuario de administración necesita el derecho 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 (véase License key).
4. Introduce el API ID, la API Key y el número de cuenta de comerciante (POS Sales ID).
5. Pide al soporte de Hubtel que incluya en la lista blanca la IP de tu servidor para la Transaction Status API.
6. Añade a la cron de tu servidor la URL cron que aparece en la sección Payment confirmation.
7. Activa Enable/Disable y haz clic en Save. La URL de callback se envía a Hubtel con cada pago, así que no hay que configurar nada en el panel de Hubtel.
OpenCart 4
1. En la administración, ve a Extensions > Installer, haz clic en Upload y elige el archivo wcp_hubtel_pay.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 Hubtel Pay 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 credenciales de Hubtel y el cron como en los pasos 3 a 7 de OpenCart 3. La página de ajustes y sus campos son iguales en ambas versiones. Solo la URL de callback y la URL cron son distintas (véase Payment confirmation).
Una instalación nueva empieza con el método de pago desactivado.
Configuración
Todos los ajustes están en la página de la extensión: Extensions > Extensions > Payments > VibeFox Hubtel Pay 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 si falta el API ID, la API Key o el número de cuenta de comerciante, y si la moneda predeterminada de la tienda no es GHS. En ambos casos, Hubtel se oculta en la finalización de compra. También te avisa si la moneda GHS usa más de 2 decimales (configúralo en System > Localisation > Currencies). Sin el derecho para modificar la extensión, la página muestra los ajustes pero no puede guardarlos.
Al guardar, Title no puede estar vacío y debe tener como máximo 128 caracteres (Enter a title for the payment method (1 to 128 characters).), Sort Order debe ser un número entero, Total un número igual o mayor que 0, y la zona geográfica y los estados de pedido deben existir; de lo contrario, no se guarda nada. Si el método de pago se activa sin las credenciales, los ajustes se guardan con una advertencia.
Hubtel
Enable/Disable: Enable Hubtel payments activa o desactiva el método de pago. Predeterminado: desactivado.
Title: el nombre del método de pago que ve el cliente en la finalización de compra. También es el nombre del método de pago guardado en el pedido. Predeterminado: Mobile Money or card (Hubtel). Obligatorio.
Description: el texto que se muestra al cliente en el paso Confirm Order, encima del botón de confirmación, junto al icono de Mobile Money y tarjeta. Predeterminado: Pay with MTN MoMo, Telecel Cash, AirtelTigo Money or a Visa/Mastercard card. You will be redirected to Hubtel to complete the payment.
Sort Order: la posición de Hubtel entre los métodos de pago de la finalización de compra. Déjalo vacío o introduce un número entero.
Geo Zone: ofrece Hubtel solo para direcciones de pago de la zona geográfica seleccionada. Predeterminado: All zones. Las zonas geográficas se configuran en System > Localisation > Geo Zones.
Total: el importe total de la finalización de compra, en la moneda predeterminada de la tienda, que un pedido debe alcanzar antes de que se ofrezca Hubtel. Déjalo vacío si no quieres ningún mínimo.
Credenciales de API de Hubtel
Copia el API ID y la API Key desde tu panel de empresa de Hubtel: bo.hubtel.com > Programmable keys (la sección enlaza allí). El número de cuenta de comerciante es el POS Sales ID de tu cuenta de Hubtel. La sección también repite el aviso sobre la lista blanca de IP.
API ID (Client ID): el API ID de tus claves programables de Hubtel.
API Key (Client Secret): la API Key de tus claves programables de Hubtel. Mantenla en privado. La clave guardada nunca se vuelve 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 la clave guardada, marca Clear saved API Key debajo del campo y haz clic en Save.
Número de cuenta de comerciante (POS Sales ID): los pagos se cobran en esta cuenta de Hubtel y se comprueban con ella.
Confirmación de pago
Callback URL: el callback indica a tu tienda que se ha realizado un pago. Esta URL se envía a Hubtel con cada pago, así que no hay que configurar nada en el panel de Hubtel. En OpenCart 3 tiene el aspecto de https://your-store/index.php?route=extension/payment/wcp_hubtel_pay/callback y en OpenCart 4 el de https://your-store/index.php?route=extension/wcp_hubtel_pay/payment/wcp_hubtel_pay.callback. Se construye a partir de la dirección de la tienda de tu instalación de OpenCart. Debe ser accesible desde internet: no puede tener protección con contraseña ni un cortafuegos que bloquee a Hubtel. El callback también funciona mientras la tienda está en modo 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 arranque (startup) que deja pasar el callback, la URL cron y el regreso del cliente desde Hubtel.
Los callbacks de Hubtel no están firmados. La extensión toma de un callback solo la referencia de pago; la referencia debe pertenecer a un pago de tu tienda. El estado, el importe y el ID de la transacción siempre proceden de la Transaction Status API de Hubtel. El pedido solo se marca como pagado cuando esa API confirma el pago y su importe.
Comprobaciones de pago en segundo plano (cron): la URL cron con un token secreto, que se crea al instalar la extensión. Llámala cada 5 minutos desde la cron de tu servidor, por ejemplo con curl. Los pagos sin confirmar se vuelven a comprobar automáticamente con Hubtel: 20 minutos después de que el cliente fuera enviado a Hubtel, una vez más al cabo de una hora si el pago sigue pendiente, y hasta 5 veces con intervalos crecientes si Hubtel no estuvo disponible. En OpenCart 4 la URL cron tiene la ruta extension/wcp_hubtel_pay/payment/wcp_hubtel_pay.cron en lugar de extension/payment/wcp_hubtel_pay/cron; cópiala exactamente como la muestran los ajustes. Mantén la URL en privado. La URL responde con una línea breve como OK checked=0.
Pedidos
OpenCart crea el pedido en el paso Confirm Order sin estado (un pedido ausente). El pedido recibe un estado solo después de que Hubtel haya confirmado el pago. Cada campo siguiente muestra tus estados de pedido de OpenCart.
Order status after payment: el estado que se asigna después de que Hubtel confirme el pago del importe exacto del pedido en GHS. Predeterminado: En proceso.
Hubtel payment on hold status: el estado que se asigna cuando Hubtel informa de un importe pagado distinto del total del pedido, o cuando el pedido no está en GHS. Una nota en el historial del pedido lo explica. Predeterminado: Pendiente, porque OpenCart no tiene el estado On hold. Puedes crear tu propio estado en System > Localisation > Order Statuses y seleccionarlo aquí.
Avanzado
Debug log: registra las llamadas a la API y los callbacks en hubtel_p_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 hubtel_p_debug.old.log.php. Las claves y los datos de los clientes no se registran. Los errores y las advertencias siempre se registran, incluso cuando esta opción está desactivada. Predeterminado: desactivado.
Log: muestra el tamaño actual y las últimas entradas del registro. Haz clic en Clear log para vaciarlo.
Delete data on uninstall: si está activado, al desinstalar la extensión se eliminan sus ajustes y su registro. Los intentos de pago de Hubtel guardados para los pedidos siempre se conservan. Predeterminado: desactivado.
Importar / Exportar
Export: Download JSON guarda los ajustes en un archivo JSON. La API Key no se exporta.
Import: pega un JSON exportado previamente y haz clic en Import para restaurar los ajustes. La API Key guardada se conserva.
Finalización de compra
En el paso Payment Method, el cliente elige el método de pago (predeterminado Mobile Money or card (Hubtel)). En el paso Confirm Order, el cliente ve el icono y tu descripción. OpenCart crea el pedido en este paso, todavía sin estado. Cuando el cliente hace clic en Confirm Order, la extensión crea una sesión de pago en Hubtel por el total del pedido en GHS y envía al cliente a la página de pago de Hubtel. Allí el pago aparece como Order #, con el número de pedido y el nombre de tu tienda. En la página de Hubtel, el cliente paga con MTN MoMo, Telecel Cash, AirtelTigo Money, una tarjeta Visa o Mastercard, o GhQR. Cada clic en Confirm Order crea un nuevo intento de pago con su propia referencia, y las páginas antiguas de Hubtel siguen siendo válidas para pagar.
En OpenCart 4 el cliente elige el método de pago con el botón Choose del bloque de método de pago, en la ventana Payment method options, y hace clic en Confirm Order al final de la página de finalización de compra.
Tras pagar, el cliente vuelve a tu tienda. El pedido solo se marca como pagado cuando Hubtel lo confirma mediante la Transaction Status API: por el callback, por la comprobación que se hace cuando el cliente regresa, por una comprobación en segundo plano o con el botón de la página del pedido. Un callback y un regreso que llegan en el mismo momento se gestionan uno después de otro, así que el pago nunca se aplica dos veces. 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 stock, y el cliente ve la página de pedido completado de OpenCart. Si el pedido se ha puesto en espera, la página muestra Your Hubtel payment was received and is being reviewed by the store. We will contact you if anything is needed.
Si Hubtel todavía no ha confirmado el pago cuando el cliente vuelve, una página de Payment confirmation muestra We are waiting for Hubtel to confirm your payment. You will receive an e-mail as soon as it is confirmed — there is no need to pay again. con los botones Check again y Back to checkout. El pedido recibe su estado en cuanto Hubtel confirma el pago. Si Hubtel ya ha informado de que este intento de pago ha fallado, el cliente vuelve a la finalización de compra con The Hubtel payment was not completed. You can try again or choose another payment method. El carrito se conserva y el pedido se queda sin estado.
Si el cliente pulsa Cancel en la página de Hubtel, la extensión comprueba primero si el pago se ha hecho de todos modos. Si no, el cliente vuelve a la finalización de compra con The Hubtel payment was cancelled. You can try again or choose another payment method. El carrito se conserva. Un pago posterior realizado desde la página de Hubtel cancelada sigue aceptándose.
En OpenCart 4 se muestran encima de la página de finalización de compra los mensajes sobre un pago cancelado o fallido. OpenCart 3 crea un pedido nuevo cada vez que se muestra el paso Confirm Order; OpenCart 4 actualiza el pedido de la finalización de compra, así que después de una cancelación o de un pago fallido el cliente paga el mismo pedido con un nuevo intento de pago. Antes de un nuevo intento, la extensión pregunta a Hubtel por los intentos no confirmados de este pedido y de los pedidos anteriores del mismo carrito (últimas 24 horas). Si alguno resulta estar pagado, ese pago se aplica y el cliente va a la página de éxito en lugar de pagar dos veces. Un cambio en el carrito, incluida una nueva cantidad, cuenta como un carrito nuevo que necesita su propio pago.
OpenCart 4 mantiene el pedido en la finalización de compra hasta que se muestra la página de éxito. Si ese pedido se cerró sin pago entretanto (por ejemplo, lo cancelaste), el cliente vuelve a la finalización de compra con The Hubtel payment was not completed. You can try again or choose another payment method., y el siguiente Confirm Order paga un pedido nuevo. Si el pedido ya está pagado y el carrito contiene ahora una compra nueva, Confirm Order vuelve a cargar la página de finalización de compra y el siguiente Confirm Order paga un pedido nuevo. Un pedido pagado nunca se muestra como pagado para un carrito distinto.
Si Hubtel no puede iniciar el pago, el cliente se queda en el paso Confirm Order con un breve mensaje encima del botón, por ejemplo Could not connect to Hubtel. Please try again in a moment., Hubtel could not start the payment. Please try again or choose another payment method. o, con credenciales incorrectas, Hubtel payments are not available at the moment. Please choose another payment method. Los detalles se envían al registro.
La extensión no ofrece reembolsos desde OpenCart, ni suscripciones, ni tarjetas guardadas, ni elección del canal de pago dentro de la tienda.
Pedidos
Estados de pedido
Sin estado (pedido ausente): el cliente fue enviado a Hubtel y no ha pagado, o Hubtel todavía no ha confirmado el pago. En Sales > Orders, estos pedidos solo se muestran con el filtro Order Status en Missing Orders.
Order status after payment (predeterminado Processing): el pago se confirmó por el importe exacto del pedido en GHS. Una nota muestra el importe, la transacción de Hubtel, el método de pago y la referencia.
Hubtel payment on hold status (predeterminado Pending): Hubtel informó de un importe pagado distinto del total del pedido, o el pedido no está en GHS. El pedido no se marcó como pagado, y una nota explica la diferencia. Comprueba el pago en el panel de Hubtel y procesa el pedido o reembólsalo manualmente. Si más adelante se paga otro intento del mismo pedido por el importe correcto, el pedido pasa a Order status after payment.
Si también se paga otro intento de un pedido que ya estaba pagado, o se paga otro pedido de un carrito que ya estaba pagado, el pedido ya pagado no cambia. Una nota te pide que reembolses el duplicado en tu panel de Hubtel. Un pago de un pedido que has cambiado a otro estado (por ejemplo, cancelado) añade una nota, y el pedido nunca se reabre automáticamente. Cuando Hubtel informa de que un pago se ha reembolsado, se añade una nota al pedido.
Las notas son entradas del History del pedido que el cliente no ve.
Pestaña VibeFox Hubtel Pay Gateway
En Sales > Orders, abre un pedido pagado con Hubtel. En la parte inferior de la página del pedido, junto a History y Additional, la pestaña VibeFox Hubtel Pay Gateway muestra los Hubtel payment attempts del pedido: fecha, referencia y sesión de pago de Hubtel, importe, estado de Hubtel, transacción y resultado. Debajo de los intentos aparecen las Hubtel notes del pedido, de la más reciente a la más antigua. La pestaña se muestra a los usuarios que tienen acceso a la extensión.
El botón Check Hubtel payment status comprueba los últimos intentos del pedido (hasta 5, de más reciente a más antiguo, y se detiene en cuanto el pedido está pagado), aplica el resultado y añade una nota con el estado de cada intento. El resultado se muestra en la pestaña. Necesitas el derecho para modificar pedidos (Sales > Orders, configurado en System > Users > User Groups). El botón también funciona con un pedido sin estado. El estado que asigna este botón se escribe directamente, sin correos del pedido ni actualización del stock; el callback, el regreso del cliente y la cron lo asignan de la forma estándar.
Reembolsos
Los reembolsos desde OpenCart no están soportados. Reembolsa el pago en el panel de Hubtel y, después, registra el reembolso en OpenCart. Las devoluciones de productos en Sales > Returns no devuelven dinero a través de Hubtel.
Clave de licencia
La extensión funciona con una clave de licencia de VibeFox obtenida en vibefox.net. El bloque de licencia License — VibeFox Hubtel Pay Gateway es el primer bloque de Extensions > Extensions > Payments > VibeFox Hubtel Pay 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-hubtel 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 de la administración (se incluyen inglés y ruso).
Si la clave no es aceptada, 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. Tras 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. Libera la plaza en tu cuenta de vibefox.net.
Sin una clave activa, Hubtel no se muestra a los clientes en la finalización de compra. Si se inicia un pago de todos modos, el cliente ve This payment method is not available. Please choose another one. Un usuario administrador que haya iniciado sesión en la 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 administrador, así que sin una clave activa el método de pago se oculta para todos. Después de abrir la página Edit una vez, aparece un recordatorio en el Dashboard de la 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, también con las comprobaciones en segundo plano.
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 cuando abres el Dashboard o la página Edit de la administración: una vez al día durante los primeros 14 días tras introducir la clave, y después una vez por semana. Para la comprobación de la licencia no hace falta ningún cron job. Desinstalar la extensión siempre elimina la clave de licencia y el estado de la licencia.
Solución de problemas
Hubtel no aparece en la finalización de compra: comprueba que la licencia está activa, que Enable/Disable está activado, que el API ID, la API Key y el número de cuenta de comerciante están rellenados y que la moneda del pedido es GHS. Comprueba también que la dirección de pago está en la Geo Zone seleccionada y que el pedido alcanza el Total definido en los ajustes. La página de ajustes muestra un aviso cuando las credenciales o la moneda son incorrectas.
El pago se ha realizado, pero el pedido sigue sin estado: el pago no se pudo confirmar. Activa el Debug log y mira el campo Log en la página de la extensión. Un HTTP 401 o 403 en la comprobación de estado significa que las claves de API son incorrectas o que Hubtel no ha incluido en la lista blanca la IP del servidor. Comprueba también que la URL de callback es accesible desde internet y que se llama a la URL cron. En cuanto Hubtel responda, el siguiente callback, la comprobación en segundo plano, el regreso del cliente o Check Hubtel payment status asignarán el estado del pedido.
El callback responde Unknown reference: la referencia de pago no pertenece a un pago de esta tienda.
El callback responde Payment status unavailable: no se pudo contactar con la Transaction Status API o rechazó la solicitud, o el carrito estaba siendo confirmado por otra solicitud en ese mismo momento. El pago se vuelve a comprobar en segundo plano a los 5 minutos.
El callback responde Gateway not configured: falta el API ID, la API Key o el número de cuenta de comerciante. Complétalos; el pago se volverá a comprobar en segundo plano.
El callback responde Invalid request o Invalid ClientReference: la solicitud no contenía un callback válido de Hubtel.
La URL de callback muestra Method not allowed en el navegador: es normal. La URL solo acepta solicitudes de Hubtel.
La URL cron responde Forbidden: el token de la URL es incorrecto. Copia la URL cron exactamente como la muestran los ajustes. Tras reinstalar con Delete data on uninstall activado, el token es nuevo.
El pedido está en el estado de espera: lee las notas de la pestaña VibeFox Hubtel Pay Gateway (véase Estados de pedido), comprueba el pago en el panel de Hubtel y procesa el pedido o reembólsalo manualmente.
El cliente ve un error después de Confirm Order: activa el Debug log y revisa el registro. Las claves de API incorrectas dan Hubtel payments are not available at the moment. Un problema de conexión da Could not connect to Hubtel. Un pedido en otra moneda da Hubtel accepts payments in Ghana cedis (GHS) only. Please choose another payment method. This payment method is not available. Please reload the checkout page. significa que la finalización de compra ya no coincide con el pedido, o que la forma de pago se desactivó entretanto.
Para desarrolladores: el evento de OpenCart wcp_hubtel_pay_icon cambia el icono del método de pago, y wcp_hubtel_pay_payment_description cambia la descripción del pago en la página de Hubtel.
Desinstalación
Ve a Extensions > Extensions, elige el tipo Payments y haz clic en Uninstall (el botón rojo −) junto a VibeFox Hubtel Pay Gateway. La clave de licencia y el estado de la 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. El evento de OpenCart de la extensión también se elimina (en OpenCart 4, sus eventos y su acción de inicio, que deja pasar el callback, la URL cron y el regreso del cliente en modo mantenimiento). Si Delete data on uninstall está activado, se eliminan el resto de ajustes (título, descripción, credenciales de API, token de cron, interruptor del registro de depuración) y el registro. Si está desactivado, se conservan para una reinstalación posterior. Los intentos de pago de Hubtel de los pedidos siempre se conservan, así que los callbacks y comprobaciones tardíos siguen funcionando tras reinstalar. 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 la desinstalación y haz clic en Uninstall (el botón naranja −) junto a VibeFox Hubtel Pay Gateway en la lista de extensiones instaladas; después, haz clic en Delete (el botón rojo de la papelera) para eliminar el paquete subido.
Hubtel es una marca comercial de su respectivo titular. Esta extensión no está afiliada a Hubtel ni cuenta con su aprobación.
