Pantallazo en blanco en Portal de Pagos - 3W

Buenos dias,
me comunicaba porque estamos teniendo problemas con las valorizaciones de los cursos y con el ingreso al portal de pagos.

Realizamos el circuito desde Gestion, creando una propuesta de grado , planes de estudio (pagos) asignando materias (no pagas) y creando comisiones (no pagas) y valorizandola luego en Sanaviron. Al momento de querer preinscribir desde autogestion no tenemos muy en claro si nos debe aparecer como cobrable, de todas maneras no lo hace.

Por otro lado al querer ingresar al portal de pagos desde 3W nos da un pantallazo blanco . Cuando abrimos
http://172.16.1.63/sq_pagos_backend/status
Dice ok.
El archivo 3w/instalacion/servicios_web_config.php en la entrada sanaviron está configurada la URL y credenciales de SQ Académico.

Adjunto algunos logs:
3w

gco

apache2

Hola Florencia:

También se debe configurar la url de sq-pagos en el config.php de guaraní
(url_sq_pagos’ => ‘http://siu:8286/siu/sq_pagos’,) y en el config.ini se GCO.

Si las inscripciones se realizaron por preinscripción estas posteriormente deben ser migradas a la propuesta.
Recíen ahi estas llegan a SQ como una solicitud de consumo externo. Si llevan correctamente pueden verse desde la operación
Estado de inscripciones.

Sino, significa que aun falta configuración o resthooks no esta corriendo en Guarani.

Cabe aclarar que a SQ, en el caso de las propuestas de tipo Grado o Posgrado, lo que se valoriza son las propuestas propiamente
dichas.
A diferencia de los curso que lo que se termina valorizando son las Actividades y Comisiones.
Estas para los grados o posgrados no llegan a SQ.

Hola Matias, gracias por la respuesta!
Continua dando pantalla blanca cuando intentamos ingresar al portal de pagos desde 3w.

Corrobora aplicando la solución que se da en este otro foro: Untref - Pantalla en blanco navegador en SQ-Pagos 2.11 - ambiente test

Revisar en la instalación de Guarani 3w, el archivo 3w/instalacion/servicios_web_config.php y verificar que en la entrada sanaviron esta configurada la URL y credenciales de SQ Académico.

Si ya lo comprobamos y apunta a académico . Seguimos buscando otros empalmes entre sistemas que puedan causar problemas pero aún no encontramos nada.

Hola Florencia,

En los logs que pasaste vemos varias cosas que nos llama la atención,

  1. Tienen configurado como activo mercado pago en GCO, en el archivo gco/config/config.ini tienen activo = "1" a [mercado_pago], si es así lo tienen bien configurado, con las credenciales correctas ?
  2. En académico tienen configurada la URL a la API de GCO con un “v1” al final? en el archivo academico/config/sq.ini en la entrada [sq_pagos_backend] el base_url no debe tener un v1 al final, tiene que quedar como por ejemplo http://127.0.0.1/sq_pagos_backend/
  3. El directorio lib que se encuentra en la raíz de donde esta instalado GCO tiene permisos de lectura y escritura de apache ?

Saludos,

Hola Fernando, como va? Muchas gracias por la respuesta.

  1. Configuramos el agente de cobranza de Mercado Pago en Ambiente Testing.
    Estos dias no pudimos avanzar porque por problemas de server (esta caido nuestro g3 test), por lo que no confirmamos que esta configuración haya quedado en funcionamiento.

2.En académico quitamos el V1 y continuaba tirando pantallazo blanco.
3. El directorio lib esta ubicado en el mismo nivel que el GCO, con permisos de lectura y escritura.

Continuamos buscando errores en la configuracion!

Hola Florencia,

Ahora que hicieron el cambio del “v1” en la url de la API de GCO, podrían volver a mandarnos el log actualizado de GCO con el error ?

Saludos,

Hola Fernando, estuvimos varios días sin acceso al server; también tuvimos que realizar la instalación de Guaraní gestión y autogestión nuevamente.
Creemos haber llegado al mismo punto. Te adjunto los logs:

GCO:
[2025-05-06T09:10:07.105230-03:00] SQ-GCO.INFO: Matched route "{route}". {"route":"POST_generar_token","route_parameters":{"_controller":"sq_pagos_back end:generar_token","_route":"POST_generar_token"},"request_uri":"http://172.16.1.63/sq_pagos_backend/generar_token","method":"POST"}

Academico:

[2025-05-06T09:10:06.514590-03:00] SQ-Academico.INFO: REST: SIU\SQ\Uv\php\rest\v1\recurso_gco_jwt::post_list - REMOTE_ADDR:172.16.1.43  
[2025-05-06T09:10:07.119057-03:00] SQ-Academico.ERROR: Client error: `POST http://172.16.1.63/sq_pagos_backend/generar_token` resulted in a `401 Unauth
orized` response: {"Message":"Not Authorized"}  #0 /usr/local/proyectos/sanaviron_quilmes/sq-academico/academico/vendor/guzzlehttp/guzzle/src/Middlewar
e.php(72): GuzzleHttp\Exception\RequestException::create() #1 /usr/local/proyectos/sanaviron_quilmes/sq-academico/academico/vendor/guzzlehttp/promises/
src/Promise.php(209): GuzzleHttp\Middleware::GuzzleHttp\{closure}() #2 /usr/local/proyectos/sanaviron_quilmes/sq-academico/academico/vendor/guzzlehttp/
promises/src/Promise.php(158): GuzzleHttp\Promise\Promise::callHandler() #3 /usr/local/proyectos/sanaviron_quilmes/sq-academico/academico/vendor/guzzle
http/promises/src/TaskQueue.php(52): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}() #4 /usr/local/proyectos/sanaviron_quilmes/sq-academico/
academico/vendor/guzzlehttp/promises/src/Promise.php(251): GuzzleHttp\Promise\TaskQueue->run() #5 /usr/local/proyectos/sanaviron_quilmes/sq-academico/a
cademico/vendor/guzzlehttp/promises/src/Promise.php(227): GuzzleHttp\Promise\Promise->invokeWaitFn() #6 /usr/local/proyectos/sanaviron_quilmes/sq-acade
mico/academico/vendor/guzzlehttp/promises/src/Promise.php(272): GuzzleHttp\Promise\Promise->waitIfPending() #7 /usr/local/proyectos/sanaviron_quilmes/s
q-academico/academico/vendor/guzzlehttp/promises/src/Promise.php(229): GuzzleHttp\Promise\Promise->invokeWaitList() #8 /usr/local/proyectos/sanaviron_q
uilmes/sq-academico/academico/vendor/guzzlehttp/promises/src/Promise.php(69): GuzzleHttp\Promise\Promise->waitIfPending() #9 /usr/local/proyectos/sanav
iron_quilmes/sq-academico/academico/vendor/guzzlehttp/guzzle/src/Client.php(189): GuzzleHttp\Promise\Promise->wait() #10 /usr/local/proyectos/sanaviron
_quilmes/sq-academico/academico/vendor/guzzlehttp/guzzle/src/ClientTrait.php(95): GuzzleHttp\Client->request() #11 /usr/local/proyectos/sanaviron_quilm
es/sq-academico/academico/toba/php/rest/v1/recurso_gco_jwt.php(75): GuzzleHttp\Client->post() #12 [internal function]: SIU\SQ\Uv\php\rest\v1\recurso_gc
o_jwt->post_list() #13 /usr/local/proyectos/sanaviron_quilmes/sq-academico/academico/vendor/siu-toba/rest/src/SIUToba/rest/lib/rest_instanciador.php(38
): call_user_func_array() #14 /usr/local/proyectos/sanaviron_quilmes/sq-academico/academico/vendor/siu-toba/rest/src/SIUToba/rest/rest.php(255): SIUTob
a\rest\lib\rest_instanciador->ejecutar_accion() #15 /usr/local/proyectos/sanaviron_quilmes/sq-academico/academico/vendor/siu-toba/framework/php/nucleo/
lib/toba_rest.php(53): SIUToba\rest\rest->procesar() #16 /usr/local/proyectos/sanaviron_quilmes/sq-academico/academico/vendor/siu-toba/framework/php/nu
cleo/toba_solicitud_servicio_rest.php(48): toba_rest->ejecutar() #17 /usr/local/proyectos/sanaviron_quilmes/sq-academico/academico/vendor/siu-toba/fram
ework/php/nucleo/toba_nucleo.php(190): toba_solicitud_servicio_rest->procesar() #18 /usr/local/proyectos/sanaviron_quilmes/sq-academico/academico/toba/
www/rest.php(23): toba_nucleo->acceso_rest() #19 {main} 

3W :

================================================================================
=================================   ERRORES   ==================================
================================================================================

clase: SIU\Chulupi\ErrorKernelHackToba
mensaje: ERROR: Server error: `POST http://172.16.1.63/sq_academico/rest/v1/gco-jwt` resulted in a `500 Internal Server Error` response:
{
    "error": 500,
    "mensaje": "500 Internal Server Error",
    "descripcion": "Client error: `POST http:\/\/172.16. (truncated...)

traza: No hay traza (hack de los logs de Toba)

########################################################################################################################
clase: guarani_error
mensaje: ERROR: Fall� la conexi�n al servidor SQ
traza: [TRAZA]

---[ 0 ]-----------------------------------------

- function: cobro_nucleo::portal_pagos_gco_jwt
- file: /usr/local/proyectos/g3w3/src/siu/modelo_g3/nucleo/cobro/cobro_nucleo.php, linea 943

---[ 1 ]-----------------------------------------

- function: siu\operaciones\portal_pagos\controlador->accion__index
- file: /usr/local/proyectos/g3w3/vendor/siu/chulupi-framework/src/SIU/Chulupi/nucleo/controlador.php, linea 420

---[ 2 ]-----------------------------------------

- function: SIU\Chulupi\nucleo\controlador->invocar_accion
- file: /usr/local/proyectos/g3w3/vendor/siu/chulupi-framework/src/SIU/Chulupi/nucleo/controlador.php, linea 154


...skipping 1 line

- function: SIU\Chulupi\nucleo\controlador->procesar_accion
- file: /usr/local/proyectos/g3w3/src/siu/extension_kernel/controlador_g3w2.php, linea 97

---[ 4 ]-----------------------------------------

- function: siu\extension_kernel\controlador_g3w2->procesar_accion
- file: /usr/local/proyectos/g3w3/vendor/siu/chulupi-framework/src/SIU/Chulupi/nucleo/AccesoWeb.php, linea 107

---[ 5 ]-----------------------------------------

- function: SIU\Chulupi\nucleo\AccesoWeb::procesar_request
- file: /usr/local/proyectos/g3w3/vendor/siu/chulupi-framework/src/SIU/Chulupi/nucleo/AccesoWeb.php, linea 25

---[ 6 ]-----------------------------------------

- function: SIU\Chulupi\nucleo\AccesoWeb::procesar
- file: /usr/local/proyectos/g3w3/src/siu/www/index.php, linea 15

Hola Florencia,

Podrías chequear que la configuración de acceso a GCO en Académico corresponda con la configuración en GCO

Tendrían que chequear en el archivo academico/config/sq.ini en la entrada [sq_pagos_backend], el valor de las variables auth_usuario y auth_password correspondan a los configurados en GCO en el archivo gco/config/config.ini en la entrada [usuarios]

Les paso un ejemplo, si en Académico en el archivo academico/config/sq.ini tienen la siguiente configuración:

##### CONFIG SQ-GCO #####
PROYECTO_GCO_API_URL=http://127.0.0.1/sq_pagos_backend/
PROYECTO_GCO_API_USUARIO=sq_academico
PROYECTO_GCO_API_PASSWORD=123456
PROYECTO_GCO_API_METHOD=basic

Y en GCO tenemos la siguiente configuración:

[usuarios]
sq_academico = "123456"

Podrían ejecutar el siguiente CURL y les debería devolver un token:

curl -u "sq_academico:123456" -X POST "http://127.0.0.1/sq_pagos_backend/generar_token" -H "accept: */*" -H "Content-Type: */*" -d "{\"tipo_documento\":0,\"numero_documento\":16161616}"

Saludos,

Hola Fernando, al ejecutar el curl :
curl -u "toba:toba123*-a" -X POST "http://172.16.1.63/sq_pagos_backend/generar_token" -H "accept: */*" -H "Content-Type: */*" -d "{\"tipo_documento\":0,\"numero_documento\":16161616}"

Recibimos :

404 Not Found

Not Found

The requested URL was not found on this server.


Apache/2.4.62 (Debian) Server at 172.16.1.63 Port 80

pero si ejecutamos :
curl -u “toba:toba123*-a” -X POST “http://172.16.1.63/sq_pagos/generar_token” -H “accept: /” -H “Content-Type: /” -d “{"tipo_documento":0,"numero_documento":16161616}”

nos devuelve:
{“token”:“eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJ0aXBvX2RvY3VtZW50byI6MCwibnVtZXJvX2RvY3VtZW50byI6MTYxNjE2MTYsImlhdCI6MTc0NjU1NTk4NywiZXhwIjoxNzQ2NTU2Mjg3fQ.ou6hw4dxw6qlZEstdOGNnbIrkca_BJRzOiDENGG43SnjE2myCBHESJKPRlhugscOIa21U-cdXGLT2TTDNnyo6Q”}

En alguna prueba habremos modificado algún path.

Lo recomendable es en el archivo instalador.env de GCO dejar la variable PROYECTO_ALIAS como viene por defecto

##### CONFIG DEL PROYECTO #####
PROYECTO_ALIAS=/sq_pagos_backend
....

Lo mismo para el archivo de configuración de apache de GCO que se encuentra en config/alias.conf

Alias /sq_pagos_backend "/usr/local/app/public"
    <Directory "/usr/local/app/public/">
...

Muchas gracias fernando! Habiamos modificado un /sq_pagos por /sq_pagos_backend .

De todas maneras procedimos a realizar la instalacion de la version mas reciente de Sanaviron y está en funcionamiento.

Te quería consultar sobre una cuestión técnica.
tengo un plan de pago asociado a una propuesta formativa en la cual ya hay una inscripción;
¿ puedo asociar dicha inscripción al nuevo plan de pago y así desactivar el viejo? Aun no se ha efectuado ningún pago.

Hola Florencia,

Si aun no existe ninguna inscripcion cobrada o en proceso de cobro, el plan de pagos asociado a la propuesta podes eliminarlo o inactivarlo. Asociar uno nuevo para utilizar desde el portal de pagos.

Te comento por las dudas que mañana se realiza el comite de SQ. Esperamos que puedan participar.