Foro de la Comunidad SIU

SIU-Guaraní => Boleto Estudiantil => Mensaje iniciado por: Fernando Velarde en Abril 12, 2022, 03:50:29 pm

Título: Preguntas sobre instalación.
Publicado por: Fernando Velarde en Abril 12, 2022, 03:50:29 pm
Preguntas variadas...

1) El svn export https://colab.siu.edu.ar/svn/guarani3/contrib/3.15.x/boleto_estudiantil/  ...
¿tiene que ser en
a) el directorio de 3w, 
b) el directorio de gestión
c) en cualquier lugar   ?

Lo hice en "a"  ; moví  el contenido de 3W  al directorio de personalización. 
BD solo tenía un script para correr pero me parece que en 3.20 esas tablas ya existen
WS lo mapeo en  ws.conf      ¿Pero cómo llega a saber donde está ese ws.conf?

2) En la configuración del    /lib/toba/instalacion/i_desarrollo/p_guarani/rest/sube/cliente.ini
Cita
to = "<url_ws_sube>"
¿vendría a ser la misma URL que WS_BASE_URL  en     src/pers/boleto_estudiantil/modelo/transacciones/boleto_estudiantil.php  ?

3) En el mismo archivo anterior
 
Cita
auth_ua = <ua> 
¿vendría a ser   WS_INSTITUCION_BOLETO  ?

Paso al WS

4) En basesDeDatos.inc.php
Cita
bdGuarani['<codigo_de_unidad_academica>'] = array(
¿  "codigo_de_unidad_academica"  tiene que ser un número "01"  como el ejemplo o tiene que ser  el  <ua> o el  WS_INSTITUCION_BOLETO   de la pregunta 3 ?

5) En institucionBoleto.inc.php
En el comentario veo
Cita
$mapeo_ua['<institucionBoleto>'] = '<codigoUnidadAcademica>';
En el ejemplo de G3 veo
Cita
$mapeo_ua['01'] = '01';

¿Tendría que ser como en el comentario ?  Algo así como $mapeo_ua['<ua>'] = '01' (si usé codigo numerico en pregunta 4) /  '<ua>'  (si la respuesta de la pregunta 4 era la 2da parte)'   ?

6) en usuarios.inc.php
¿Qué son los usuarios? ¿Los tengo que inventar/crear  o sacar existentes de algún lado?

7) en ws.conf
Cita
"/path/to/boleto_ws/web"
   supongo que es el /boleto_estudiantil/WS/web  del SVN export  ...
La respuesta a la pregunta 1, me dirá el lugar correcto para guardarlo...  Y si puede ser cualquiera, lo que importa es que coincida con ese valor..

Con esto tengo para avanzar un poco más. ¡¡¡Gracias !!!!

Título: Re:Preguntas sobre instalación.
Publicado por: Leonel Leonardis en Abril 12, 2022, 04:37:22 pm
Hola Fernando,

Cita
a) el directorio de 3w,
Seria svn export https://colab.siu.edu.ar/svn/guarani3/contrib/3.15.x/boleto_estudiantil/3W/boleto_estudiantil/ src/pers/boleto_estudiantil/

Cita
b) el directorio de gestión
Si tenes Guaraní mayor a la versión 3.12.x ya vas a tener los comandos bin/guarani pro_solicitudes_sube y bin/guarani notif_solicitudes_sube, pero vas a tener que configurar el archivo instalacion/i__desarrollo/p__guarani/rest/sube/cliente.ini .
Ver: https://colab.siu.edu.ar/trac/guarani3/wiki/contrib/boleto_estudiantil/comandos

Cita
BD solo tenía un script para correr pero me parece que en 3.20 esas tablas ya existen
Si, desde la versión 3.13.0 ya existen las tablas mbe_intentos y mbe_solicitudes.

Después tenes que instalar y configurar el Web Service:
https://colab.siu.edu.ar/trac/guarani3/wiki/contrib/boleto_estudiantil/ws

saludos.
2


Título: Re:Preguntas sobre instalación.
Publicado por: Leonel Leonardis en Abril 12, 2022, 04:57:52 pm
Cita
2) En la configuración del    /lib/toba/instalacion/i_desarrollo/p_guarani/rest/sube/cliente.ini
Cita
to = "<url_ws_sube>"
¿vendría a ser la misma URL que WS_BASE_URL  en     src/pers/boleto_estudiantil/modelo/transacciones/boleto_estudiantil.php  ?

Seria en instalacion/i__desarrollo/p__guarani/rest/sube/cliente.ini.
Claro, es la misma URL: https://boletoeducativo.gba.gob.ar/ws/

Código: [Seleccionar]
3) En el mismo archivo anterior
 
Cita
auth_ua = <ua>
¿vendría a ser   WS_INSTITUCION_BOLETO  ?

Claro, ese valor te lo dan junto con las credenciales.

Cita
4) En basesDeDatos.inc.php
Cita
bdGuarani['<codigo_de_unidad_academica>'] = array(
¿  "codigo_de_unidad_academica"  tiene que ser un número "01"  como el ejemplo o tiene que ser  el  <ua> o el  WS_INSTITUCION_BOLETO   de la pregunta 3 ?

Es el que te da la subsecretaria de transporte.

Vamos a mejorar la documentación para que quede mas claro.

saludos.
2
Título: Re:Preguntas sobre instalación.
Publicado por: Leonel Leonardis en Abril 13, 2022, 10:08:37 am
Repasando esta documentación: https://colab.siu.edu.ar/trac/guarani3/wiki/contrib/boleto_estudiantil/ws

<unidad_academica> es un valor que viaja en la URL para identificar el punto de acceso, puede ser cualquier valor que quieran. Ej: UPE
<student_department>: valor que provee el ministerio de transporte junto con las credenciales. Ej: UPE_SUBE

config/basesDeDatos.inc.php:
Código: [Seleccionar]
<?php

//Ejemplo de Conexion para G3

$bdGuarani['<unidad_academica>'] = array( 
'tipo_conexion' => 'pgsql'
'host' => 'host',
'service' => '5432'
'bd' => 'guarani',
'schema' => 'negocio',
'usuario' => 'usuario'
'clave' => 'clave123456');

Código: [Seleccionar]
<?php

//Ejemplo de Conexion para G3

$bdGuarani['UPE'] = array( 
'tipo_conexion' => 'pgsql'
'host' => 'host',
'service' => '5432'
'bd' => 'guarani',
'schema' => 'negocio',
'usuario' => 'usuario'
'clave' => 'clave123456');

config/institucionBoleto.inc.php:
Código: [Seleccionar]
<?php
/*
 * En en el array siguiente se mapea la unidad academica con la institucion 
 * boleto.
 * Institución boleto es asignado por la subsecretaría de transporte
 * 
 * $mapeo_ua['<student_department>'] = '<unidad_academica>';
 */

//Para G3
$mapeo_ua['<student_department>'] = '<unidad_academica>';

Código: [Seleccionar]
<?php
/*
 * En en el array siguiente se mapea la unidad academica con la institucion 
 * boleto.
 * Institución boleto es asignado por la subsecretaría de transporte
 * 
 * $mapeo_ua['<student_department>'] = '<unidad_academica>';
 */

//Para G3
$mapeo_ua['UPE_SUBE'] = 'UPE';

config/usuarios.inc.php:
Acá creas los usuarios para los Web Services, los tenes que "inventar" (NO es el usuarios que te provee el ministerio de transporte) .
Código: [Seleccionar]
<?php

// USUARIOS: 
/*
 * En este archivo se definen los usuarios con sus respectivas claves de la 
 * siguiente forma:
 * 
 * $usuarios['<NOMBRE_DE_USUARIO>'] = '<CLAVE>'
 * 
 * Renombrar este archivo a "usuarios.inc.php"
 * 
 */ 

$usuarios['fvelarde'] = '123456789*-a';
$usuarios['lleonardis'] = '123456789*-a';

config/permisos.inc.php:
Código: [Seleccionar]
<?php

// Le doy permisos a los usuarios 'fvelarde' y 'lleonardis' al servicio 'sube_actualizar_solicitud'
$permisos['ConsultaSubeActualizaSolicitud'] = array('fvelarde');
// Le doy permisos al usuario 'fvelarde' al servicio 'sube_cantidad_solicitudes_aceptadas'
$permisos['ConsultaBoletoCantSolicitudesAceptadas'] = array('fvelarde');

// Le doy permisos al usuario 'fvelarde' a la DB configurada para 'UPE'
$usuarios_ua['fvelarde'] = array('UPE');

Luego de configurar proba donde dice Ejemplo de prueba del servicio (https://colab.siu.edu.ar/trac/guarani3/wiki/contrib/boleto_estudiantil/ws#Ejemplodepruebadelservicio:).

saludos.
2
Título: Re:Preguntas sobre instalación.
Publicado por: Fernando Velarde en Abril 26, 2022, 12:24:41 pm
Gracias Leonardo, la configuración va quedando...

Ahora el /boletows me devuelve un 404.

sobre el   ws.conf   dice
Cita
Este archivo contiene el alias que luego debe ser agregado al apache para que el mismo pueda reconocer el web service.

Me parece que me falta esa parte  de que "deba ser agregado al apache"  ...   Tengo el ws.conf configurado ....  ahí dice el path real de /boletows    pero no sé  como hace el apache para saber que el path está ahí adentro del ws.conf  ...   Por sí solo no va a leer el ws.conf.  En algún lado el apache debería enterarse que existe... 

Gracias..
Título: Re:Preguntas sobre instalación.
Publicado por: Leonel Leonardis en Abril 27, 2022, 12:46:14 pm
Hola Fernando,

Yo lo configure de la siguiente manera:

Código: [Seleccionar]
#Proyecto: boletows
Alias /boletows "/usr/local/app/boleto_estudiantil/WS/web/"

<Directory "/usr/local/app/boleto_estudiantil/WS/web/">
    Options Indexes FollowSymLinks MultiViews
    DirectoryIndex index.php
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    RewriteEngine On
    RewriteBase /boletows/
    RewriteRule ^(.*)$ index.php?params=$1 [QSA,NC]
    #LogLevel warn rewrite:trace3
    AllowOverride All
</Directory>

El Alias y RewriteBase deben coincidir.

Luego podes probar haciendo un curl, ej:
Código: [Seleccionar]
curl -u <USER>:<PASS> --data "respuesta=ACEPTADA&respuesta_descripcion=OK" http://<URL_SERVER>/boletows/sube_actualizar_solicitud/<institucionBoleto>/T350668111489414368
Donde:
<USER> y <PASS>: lo que configuraste en WS/config/usuarios.inc.php.
<institucionBoleto>: lo que configuraste en WS/config/institucionBoleto.inc.php.
<URL_SERVER>: URL base del server donde instalaste el WS.

Respuesta:
Código: [Seleccionar]
{"codigo":-1,"mensaje":"No existe una solicitud con el tid informado","datos":{"tipo_error":"aplicacion"}}
Si podes pasame un ejemplo de tu configuración.

saludos.
2
Título: Re:Preguntas sobre instalación.
Publicado por: Fernando Velarde en Abril 27, 2022, 04:07:47 pm
Hola Leonardo,

El ws.conf lo tengo exactamente igual ...  y me bajé un cliente rest ... 

Código: [Seleccionar]
Alias /boletows "/usr/local/proyectos/g3w3_320/boleto_estudiantil/WS/web"

<Directory "/usr/local/proyectos/g3w3_320/boleto_estudiantil/WS/web">
    Options Indexes FollowSymLinks MultiViews
    DirectoryIndex index.php
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    RewriteEngine On
    RewriteBase /boletows/
    RewriteRule ^(.*)$ index.php?params=$1 [QSA,NC]
    #LogLevel warn rewrite:trace3
    AllowOverride All
</Directory>

La duda que me queda es como el apache llega a leer este  ws.conf  .  Adónde se le indica que lo lea para buscarlo .. ¿En alguna parte la configuración del apache,  en algún path ?
Porque el error 404 que me da, me hace pensar que el Alias  /boletows  no lo está interpretando  ...  y sin algo que le indique que lo lea , no va a entrar al ws.conf ..
Si el boletows lo reconociera y estuviera mal el <institucionBoleto> o el HASH  esperaría un error diferente...
Título: Re:Preguntas sobre instalación.
Publicado por: Leonel Leonardis en Abril 27, 2022, 04:16:33 pm
Hola Fernando,

Cita
La duda que me queda es como el apache llega a leer este  ws.conf  .  Adónde se le indica que lo lea para buscarlo .. ¿En alguna parte la configuración del apache,  en algún path ?

Tenes que hacer así:
Código: [Seleccionar]
sudo ln -s /usr/local/proyectos/g3w3_320/boleto_estudiantil/WS/config/ws.conf /etc/apache2/sites-enabled/boletows.conf
Luego reinicias Apache y debería tomarla.

saludos.
2
Título: Re:Preguntas sobre instalación.
Publicado por: Fernando Velarde en Mayo 04, 2022, 11:07:48 am
Gracias Leonardo !!! Voy avanzando de a pasitos...


Ahora estoy con 2 problemas  . El 1 ya lo solucioné recompilando los recursos... lo dejo en el mensaje solo por si a alguien más le sirve.

1) En 3w , me aparece Boleto Estudiantil en el menú de trámites, pero al hacerle click solo me muestra el título  " Beneficio de Boleto Estudiantil "  pero el resto de la pantalla está en blanco.
En logs de Apache / 3w  no hay ningún error... 
¿Que debería aparecer abajo de ese título ?   ¿Algún php de mi servidor? ¿O la página de boleto estudiantil del servidor de ellos?

En el código fuente en el navegador veo
Código: [Seleccionar]
<!-- https://gist.github.com/tentacode/3892186 -->

        <div id="loading" style="display: none;" class=""></div>
<div id="loading_top" style="top: 0px; left: 917.5px; display: none;" class="">Cargando...</div>
<div id="_msg_placeholder" style="display:none;" class="msg_placeholder alert-success"></div>
<div id="kernel_contenido" class="container"> <div class="titulo_operacion row-fluid">
<div class="span12">
    <h2>Beneficio de Boleto Estudiantil</h2>
    </div>
</div>

<div id="layout_una_columna" class="row-fluid">
<div id="columna_1" class="span12">
    <div id="inicial" class="pagelet" style="display: none;"><div class="alert alert-info"><strong>¡Atención!</strong> Antes de realizar el trámite, verificá que tus datos sean correctos. En caso de no serlos, dirigite al Departamento de Alumnos de tu Facultad para actualizarlos.</div><table class="table table-bordered table-hover"><tbody><tr><td><strong>Apellido y nombre</strong></td><td>SUAREZ, YAEL</td></tr><tr><td><strong>Tipo de documento</strong></td><td>Documento Nacional de Identidad (DNI)</td></tr><tr><td><strong>Número de documento</strong></td><td>22990614</td></tr><tr><td><strong>Correo electrónico</strong></td><td><span class="pull-left">
                                    sistemas@upe.edu.ar
                            </span><a class="pull-right" href="http://34.232.173.37/upe/configuracion">Editar</a></td></tr></tbody></table><div class="well"><h3>Iniciá tu Trámite</h3><p>Para iniciar el trámite de este beneficio, se verificará tu actividad académica en el ciclo lectivo anterior y actual. Tené en cuenta los siguientes puntos:</p><ol id="puntos_tramite"><li>Poseer una tarjeta SUBE registrada a tu DNI. En el <a href="https://www.sube.gob.ar/" target="_blank" class="no-ajax">portal SUBE</a> podés hacer este trámite.</li></ol><div class="well"><div class="row-fluid"><form id="js_form_tramite" method="post" action="http://34.232.173.37/upe/boleto_estudiantil/nueva_solicitud"><label id="acepta_condiciones" class="checkbox"><input type="checkbox" id="acepto" value="">
                            Acepto que mi nombre y apellido, tipo y número de documento, Facultad y correo electrónico se envíe a la Subsecretaria de Transporte de la Provincia de Buenos Aires donde se continuará el trámite.
                        </label><div class="form-container"><button type="submit" class="btn btn-info btn-block js-btn-solicitar btn-large" name="" id="btn_solicitar_boleto" disabled="disabled">Iniciar Trámite de Boleto Estudiantil</button></div><input type="hidden" name="__csrf" value="csrf0e060a0943aa0eb0e8ee47fb9fc64923b676af3b" class="btn btn-primary"></form></div></div></div></div>
</div>
</div>
<script type="text/javascript">kernel.renderer.on_arrival({"css":["\/upe\/_comp\/boleto_estudiantil\/operaciones\/boleto_estudiantil\/inicial\/default.css"],"js":["\/upe\/_comp\/boleto_estudiantil\/operaciones\/boleto_estudiantil\/inicial\/pagelet_inicial.js"],"op":"boleto_estudiantil","info":{"id":"inicial","visible":"1","estado":"inicial","mensajes":[]},"content":"<div class=\"alert alert-info\"><strong>\u00a1Atenci\u00f3n!<\/strong> Antes de realizar el tr\u00e1mite, verific\u00e1 que tus datos sean correctos. En caso de no serlos, dirigite al Departamento de Alumnos de tu Facultad para actualizarlos.<\/div><table class=\"table table-bordered table-hover\"><tbody><tr><td><strong>Apellido y nombre<\/strong><\/td><td>SUAREZ, YAEL<\/td><\/tr><tr><td><strong>Tipo de documento<\/strong><\/td><td>Documento Nacional de Identidad (DNI)<\/td><\/tr><tr><td><strong>N\u00famero de documento<\/strong><\/td><td>22990614<\/td><\/tr><tr><td><strong>Correo electr\u00f3nico<\/strong><\/td><td><span class=\"pull-left\">\n                                    sistemas@upe.edu.ar\n                            <\/span><a class=\"pull-right\" href=\"http:\/\/34.232.173.37\/upe\/configuracion\">Editar<\/a><\/td><\/tr><\/tbody><\/table><div class=\"well\"><h3>Inici\u00e1 tu Tr\u00e1mite<\/h3><p>Para iniciar el tr\u00e1mite de este beneficio, se verificar\u00e1 tu actividad acad\u00e9mica en el ciclo lectivo anterior y actual. Ten\u00e9 en cuenta los siguientes puntos:<\/p><ol id=\"puntos_tramite\"><li>Poseer una tarjeta SUBE registrada a tu DNI. En el <a href=\"https:\/\/www.sube.gob.ar\/\" target=\"_blank\" class=\"no-ajax\">portal SUBE<\/a> pod\u00e9s hacer este tr\u00e1mite.<\/li><\/ol><div class=\"well\"><div class=\"row-fluid\"><form id=\"js_form_tramite\" method=\"post\" action=\"http:\/\/34.232.173.37\/upe\/boleto_estudiantil\/nueva_solicitud\"><label id=\"acepta_condiciones\" class=\"checkbox\"><input type=\"checkbox\" id=\"acepto\" value=\"\" >\n                            Acepto que mi nombre y apellido, tipo y n\u00famero de documento, Facultad y correo electr\u00f3nico se env\u00ede a la Subsecretaria de Transporte de la Provincia de Buenos Aires donde se continuar\u00e1 el tr\u00e1mite.\n                        <\/label><div class=\"form-container\"><button type=\"submit\" class=\"btn btn-info btn-block js-btn-solicitar btn-large\" name=\"\" id=\"btn_solicitar_boleto\" disabled=\"disabled\">Iniciar Tr\u00e1mite de Boleto Estudiantil<\/button><\/div><input type=\"hidden\" name=\"__csrf\" value=\"csrf0e060a0943aa0eb0e8ee47fb9fc64923b676af3b\" class=\"btn btn-primary\"  \/><\/form><\/div><\/div><\/div>","clase_js":"inicial","tiene_archivo_js":"1"});</script><script type="text/javascript">kernel_config.pagelet_count = 1</script></div>
       

El error lo veo en la consola de javascript

Código: [Seleccionar]
Falló la carga de <script> con fuente “http://34.232.173.37/upe/_comp/boleto_estudiantil/operaciones/boleto_estudiantil/inicial/pagelet_inicial.js”.

error cargando el pagelet "inicial". Probablemente no se definió el archivo js o el nombre de la clase js no es correcto

Uncaught TypeError: pagelet_init_fns[op] is undefined
    get_pagelet_init_fn http://34.232.173.37/upe/_comp/siu/js/guarani_mash.js:3
    set_state http://34.232.173.37/upe/_comp/siu/js/guarani_mash.js:3
    load_js http://34.232.173.37/upe/_comp/siu/js/guarani_mash.js:3
    i http://34.232.173.37/upe/_comp/siu/js/guarani_mash.js:3
    u http://34.232.173.37/upe/_comp/siu/js/guarani_mash.js:3

El archivo pagelet_inicial.js  existe dentro del directorio de la personalización.  Pero parecería haber alguna configuración mal en algún lado que hace que lo busque en otro lado...


2)  En el servicio rest, en el curl, o en lo que use ...
http://34.232.173.37/boletows/sube_actualizar_solicitud/UPE_test/565656656565656     (el hash es cualquiera, tengo las tablas mbe_xxxxxxxx vacías, pero supongo que el error por hash erróneo sería un error de hash, no de unidad académica)
curl -u usuariot:clave --data "respuesta=ACEPTADA&respuesta_descripcion=OK" http://34.232.173.37/boletows/sube_actualizar_solicitud/UPE_test/T350668111489414368

Código: [Seleccionar]
codigo -1
mensaje "unidad_academica: El valor recibido no es válido."
datos
tipo_error "aplicacion"

Me hace pensar en algún error de mapeo .... En el mapeo le puse el mismo nombre a mi ua "UPE_test"  que el que proporcionaron ellos ...
Así que en todas partes se llama "UPE_test"  tanto la unidad_académica como el institución_boleto o como lo llamen.
Título: Re:Preguntas sobre instalación.
Publicado por: Leonel Leonardis en Mayo 04, 2022, 12:04:04 pm
Hola Fernando,

Cita
1) En 3w , me aparece Boleto Estudiantil en el menú de trámites, pero al hacerle click solo me muestra el título  " Beneficio de Boleto Estudiantil "  pero el resto de la pantalla está en blanco.

Claro, si esta en modo producción ('produccion' => true, en instalacion/config.php) tenes que ejecutar el comando bin/guarani compilar_recursos para que compile los recursos de la personalización de Boleto Estudiantil.

Cita
2)  En el servicio rest, en el curl, o en lo que use ...

Las URLs parecen estar bien, recorda que son peticiones que se hacen por POST. Te recomiendo usar Postman (https://www.postman.com/) para probarlas.

Para mi tenes un problema de configuración, revisa lo siguiente:

config/basesDeDatos.inc.php:
Código: [Seleccionar]
$bdGuarani['db_upe'] = array(
'tipo_conexion' => 'pgsql',
'host' => 'localhost',
'service' => '5432',
'bd' => 'db_guarani',
'schema' => 'negocio',
'usuario' => 'postgres',
'clave' => 'xxxx'
);
Yo le puse 'db_upe', pero puede ser cualquier valor.

config/institucionBoleto.inc.php:

Código: [Seleccionar]
$mapeo_ua['UPE_test'] = 'db_upe';

En este caso en lugar de 'UPE_test' tenes que poner el valor que te proporcionó el Ministerio de Infraestructura y Servicios Públicos de la Provincia de Buenos Aires, 'db_upe' porque debe coincidir con lo que configuraste en config/basesDeDatos.inc.php.

config/usuarios.inc.php:
Acá creas usuarios y passwords para el acceso a la API:
Código: [Seleccionar]
$usuarios['user_upe'] = '123456789*-a';
config/permisos.inc.php:
Acá le das permisos a los usuarios:
Código: [Seleccionar]
$permisos['ConsultaSubeActualizaSolicitud'] = array('user_upe');
$permisos['ConsultaBoletoCantSolicitudesAceptadas'] = array('user_upe');

$usuarios_ua['user_upe'] = array('db_upe');

Con eso debería funcionar.

Podes utilizar esta URL de prueba que proporciona el Ministerio de Infraestructura y Servicios Públicos de la Provincia de Buenos Aires: http://test.boletoestudiantil.gba.gob.ar/ws/

URL prueba (sandbox): http://test.boletoestudiantil.gba.gob.ar/ws/
URL verdadera/producción: https://boletoeducativo.gba.gob.ar/ws/

Referencia: https://colab.siu.edu.ar/trac/guarani3/wiki/contrib/boleto_estudiantil/ws

saludos.
2
Título: Re:Preguntas sobre instalación.
Publicado por: Fernando Velarde en Mayo 05, 2022, 09:06:50 am
config/basesDeDatos.inc.php:
Código: [Seleccionar]
$bdGuarani['db_upe'] = array(
        'tipo_conexion' => 'pgsql',
        'host' => '34.232.173.37',
        'service' => '5432',
        'bd' => 'toba_3_0',
        'schema' => 'negocio',
        'usuario' => 'postgres',
        'clave' => 'xxxx_pero_mi_xxxx'
);

Esta está bien. Estamos recibiendo entradas en la tabla mbe_solicitudes y mbe_intentos.

config/institucionBoleto.inc.php:
Código: [Seleccionar]
$mapeo_ua['UPE_test'] = 'db_upe';UPE_test no es invento nuestro. Es el usuario que nos asignó el Ministerio.

config/permisos.inc.php:
Código: [Seleccionar]
$permisos['ConsultaSubeActualizaSolicitud'] = array('uperest');
$permisos['ConsultaBoletoCantSolicitudesAceptadas'] = array('uperest');

$usuarios_ua['uperest'] = array('db_upe');
El usuario funciona... si pongo una clave distinta de la definida me devuelve error 401 Unauthorized... Con la definida en config/usuarios.inc.php  no tengo ese problema.

Servicios del Ministerio
Los dos servicios que el Ministerio provee funcionan bien en el Advanced REST Client
Código: [Seleccionar]
URL: http://test.boletoestudiantil.gba.gob.ar/ws/benefit-request
URL: http://test.boletoestudiantil.gba.gob.ar/ws/benefit-update
Además de hacer la petición por POST, los parámetros hay que pasarlos por JSON, no por URL.

Nuestro servicio - sube_actualizar_solicitud 
Código: [Seleccionar]
http://34.232.173.37/boletows/sube_actualizar_solicitud/UPE_test/T229906141651685249

 curl -u uperest:miclave --data "respuesta=RECHAZADA&respuesta_descripcion=TRAMITE_EXPIRADO" http://34.232.173.37/boletows/sube_actualizar_solicitud/UPE_test/T229906141651673805

No puedo salir de este error.  Me da por URL, me da por CURL, me da por POST en el Rest Client
Código: [Seleccionar]
{
  "codigo": -1,
  "mensaje": "unidad_academica: El valor recibido no es válido.",
  "datos": {
    "tipo_error": "aplicacion"
  }
}
¿Qué código debería mirar para ver que es lo que está recibiendo en vez de la unidad_academica correcta?

Lo que veo fuera de documentación...
entorno.inc.php
Código: [Seleccionar]
define('ES_PRODUCCION', false);Nosotros estamos en producción, usando el test del Ministerio.
Deberíamos poner ya ES_PRODUCCION en true ?  En qué afecta ese true/false ?

Y lo último que se me ocurre es que en el Ministerio guarden alguna información nuestra...(nosotros tenemos dos sistemas...en el viejo (que no es Guaraní) está funcionando...y al tener el WS  en distinta URL en cada sistema, ellos apunten o guarden algo del web service  del otro sistema..) o algo por el estilo ...
Título: Re:Preguntas sobre instalación.
Publicado por: Leonel Leonardis en Mayo 05, 2022, 11:00:03 am
Hola Fernando,

config/basesDeDatos.inc.php la clave que se usa NO debe ser mayor a 5 caracteres, hay una validación en la función evaluaUnidadAcademica de clases/Consulta.class.php. La verdad no se porque de esto, viene de una personalización. Si usas una clave mayor a 5 caracteres da el siguiente error:

config/basesDeDatos.inc.php:
Código: [Seleccionar]
$bdGuarani['des01_saraza'] = array(
'tipo_conexion' => 'pgsql',
'host' => 'guarani_dev_pg_trunk',
'service' => '5432',
'bd' => 'db_guarani',
'schema' => 'negocio',
'usuario' => 'postgres',
'clave' => 'postgres'
);

Código: [Seleccionar]
{
    "codigo": -1,
    "mensaje": "unidad_academica: El valor recibido no es válido.",
    "datos": {
        "tipo_error": "aplicacion"
    }
}

En config/entorno.inc.php las constantes ES_PRODUCCION y USA_CACHE se están usando en el archivo web/index.php:

ES_PRODUCCION: Lo único que veo que hace es loguear los error de Postgres.
USA_CACHE: Cachea las respuestas de los Web Services.

Cabe aclarar que esto es una personalización que compartieron en el COLAB, con lo cual el funcionamiento de código fuente depende de la universidad que lo compartió.

saludos.
2
Título: Re:Preguntas sobre instalación.
Publicado por: Fernando Velarde en Mayo 06, 2022, 12:19:23 pm
Gracias Leonardo,

Cita
Si usas una clave mayor a 5 caracteres da el siguiente error
Cambiando la unidad académica a 5 letras funcionó.

Luego tuvimos el problema de certificado, que se solucionó con el verify => false   del https://foro.comunidad.siu.edu.ar/index.php?topic=18573.msg97084 (https://foro.comunidad.siu.edu.ar/index.php?topic=18573.msg97084)

Ahora desde SUBE se contactaron para decirnos que ellos están recibiendo el siguiente error
Cita
REQUEST: http://34.232.173.37/boletows/sube_actualizar_solicitud/UPE01/T287190561651847406
RESPONSE: Curl failed with error #1: Protocol "http" not supported or disabled in libcurl

En el foro no encontré algo parecido
Título: Re:Preguntas sobre instalación.
Publicado por: Leonel Leonardis en Mayo 06, 2022, 02:43:12 pm
Hola Fernando,

Cita
Cambiando la unidad académica a 5 letras funcionó.
Dale, lo voy a agregar a la documentación para que no vuelva  pasar.

Cita
Luego tuvimos el problema de certificado, que se solucionó con el verify => false   del https://foro.comunidad.siu.edu.ar/index.php?topic=18573.msg97084

Si, esa es una solución, pero es extraño porque https://boletoeducativo.gba.gob.ar/ws/ tiene bien los certificados.
¿estas usando la de test/sandbox http://test.boletoestudiantil.gba.gob.ar/ws/? A esta ultima si le tenes que poner verify => false.

Cita
Ahora desde SUBE se contactaron para decirnos que ellos están recibiendo el siguiente error
¿a vos te accede bien?
Código: [Seleccionar]
curl -u user:password --data "respuesta=ACEPTADA&respuesta_descripcion=OK" http://34.232.173.37/boletows/sube_actualizar_solicitud/UPE01/T287190561651847406
Para mi están haciendo mal el curl, fíjate estos posts:
https://stackoverflow.com/questions/6884669/curl-1-protocol-https-not-supported-or-disabled-in-libcurl
https://discuss.newrelic.com/t/curl-https-not-supported-or-disabled-in-libcurl/43204
https://askubuntu.com/questions/683857/curl-1-protocol-https-not-supported-or-disabled-in-libcurl
https://talk.plesk.com/threads/protocol-https-not-supported-or-disabled-in-libcurl.348967/

saludos.
2
Título: Re:Preguntas sobre instalación.
Publicado por: Fernando Velarde en Mayo 06, 2022, 03:48:23 pm
Cita
¿a vos te accede bien?
Por curl a mí me sale perfecto
Código: [Seleccionar]
{"codigo":1,"mensaje":null,"datos":{"resultado":true}}
Lo que ellos me mandaron fue parte del log de ellos cuando llaman a nuestro servicio,  de la interacción automática de ambos sistemas ....
No están haciendo un curl directo como para probar,  sino que alguna parte de su código que llama a nuestro servicio lo estaría haciendo....  o alguna parte del código de nuestro servicio ...que les termina devolviendo ese error a ellos ...

Les pedí los paramétros para intentar replicar ....   (estoy esperando respuesta del Ministerio)
Pero si es un tema de la configuración de su Curl le debería pasar lo mismo  con todas las Universidades que son http y no https .....
Título: Re:Preguntas sobre instalación.
Publicado por: Leonel Leonardis en Mayo 06, 2022, 05:19:09 pm
A mi me funciona bien:

Código: [Seleccionar]
curl -u admin:123456789*-a --data "respuesta=ACEPTADA&respuesta_descripcion=OK" http://localhost:7271/boletows/sube_actualizar_solicitud/SIUG3/T367894621651257260

Código: [Seleccionar]
{"codigo":1,"mensaje":null,"datos":{"resultado":true}}
Ojo, si en config/entorno.inc.php le pongo:
Código: [Seleccionar]
define('ES_PRODUCCION', true);
define('USA_CACHE', true);

Código: [Seleccionar]
curl -u admin:123456789*-a --data "respuesta=ACEPTADA&respuesta_descripcion=OK" http://localhost:7271/boletows/sube_actualizar_solicitud/SIUG3/T367894621651257260

Código: [Seleccionar]
<br />
<b>Fatal error</b>:  Uncaught Error: Call to undefined function apc_delete() in /usr/local/app/boleto_estudiantil/WS/lib/Cache.class.php:27
Stack trace:
#0 /usr/local/app/boleto_estudiantil/WS/web/index.php(28): Cache::cachear()
#1 {main}
  thrown in <b>/usr/local/app/boleto_estudiantil/WS/lib/Cache.class.php</b> on line <b>27</b><br />

Hay que tener instalada la extensión PHP APC, o sino en el archivo lib/Cache.class.php reemplazar las funciones apc_xxx() por apcu_xxx(), por ejemplo apcu_store en lugar de apc_store.

saludos.
2
Título: Re:Preguntas sobre instalación.
Publicado por: Fernando Velarde en Mayo 10, 2022, 10:24:52 am
Ellos, enel Ministerio, están recibiendo
Cita
RESPONSE: Curl failed with error #1: Protocol "http" not supported or disabled in libcurl

a)  Si yo pongo directo en el navegador   (no estoy especificando POST porque es la barra de URL ...)
http://34.232.173.37/boletows/sube_actualizar_solicitud/UPE01/T229906141651845643

Recibo  {"codigo":-1,"mensaje":"El metodo HTTP utilizado es incorrecto","datos":{"tipo_error":"aplicacion"}}      (Lo más parecido al error de ellos)

b)  Haciendo por CURL
curl -u uperest:miclave --data "respuesta=RECHAZADA&respuesta_descripcion=TRAMITE_EXPIRADO" http://34.232.173.37/boletows/sube_actualizar_solicitud/UPE01/T229906141651845643

Recibo  {"codigo":1,"mensaje":null,"datos":{"resultado":true}}    (Lo correcto,  que está funcionando)

c)  Haciendo cualquiera de estas dos  por el REST Client con POST
http://34.232.173.37/boletows/sube_actualizar_solicitud/UPE01/T229906141651845643?respuesta=ACEPTADA&respuesta_descripcion=OK   

o
http://34.232.173.37/boletows/sube_actualizar_solicitud/UPE01/T229906141651845643
y este JSON
{
"respuesta": "ACEPTADA",
"respuesta_descripcion": "OK"
}

Recibo     { "codigo": -1,  "mensaje": "La cantidad de parametros no es correcta.",  "datos": { "tipo_error": "aplicacion"  }}

Algo me está faltando en esta prueba pero no me puedo dar cuenta qué....

Las preguntas que me hago ahora ...

Los trámites en el Ministerio se están evaluando, ya que en listado que ellos mandan, hay algunos con estado "HABILITADO"
Supongo que la falla en el Curl, afecta a la actualización de los estados de trámite en nuestra base de datos porque creo que eso es lo que hace el sube_actualizar_solicitud ..

1) Hay un Curl que está generando error...     ¿Ese Curl sería del código  del Ministerio, y es la forma que utilizan ellos para llamar a nuestro WS sube_actualizar_solicitud ?      ¿Podría existir la chance que ellos lo tengan habilitado solo para https y no http ? 

2) ¿ El código de sube_actualizar_solicitud    donde me devuelve los mensajes de error ,   estaría  en WS/clases  ?

3) ¿ Qué me estaría olvidando para porbarlo en el REST CLIENT ? y ver si consigo el OK  o la réplica del error...

Gracias !!
Título: Re:Preguntas sobre instalación.
Publicado por: Leonel Leonardis en Mayo 10, 2022, 01:39:52 pm
Te respondo:

Cita
a)  Si yo pongo directo en el navegador   (no estoy especificando POST porque es la barra de URL ...)
http://34.232.173.37/boletows/sube_actualizar_solicitud/UPE01/T229906141651845643

Recibo  {"codigo":-1,"mensaje":"El metodo HTTP utilizado es incorrecto","datos":{"tipo_error":"aplicacion"}}      (Lo más parecido al error de ellos).

Claro, porque en el navegador es como hacer un GET y el método debe ser POST.

Cita
b)  Haciendo por CURL
curl -u uperest:miclave --data "respuesta=RECHAZADA&respuesta_descripcion=TRAMITE_EXPIRADO" http://34.232.173.37/boletows/sube_actualizar_solicitud/UPE01/T229906141651845643

Recibo  {"codigo":1,"mensaje":null,"datos":{"resultado":true}}    (Lo correcto,  que está funcionando)

c)  Haciendo cualquiera de estas dos  por el REST Client con POST
http://34.232.173.37/boletows/sube_actualizar_solicitud/UPE01/T229906141651845643?respuesta=ACEPTADA&respuesta_descripcion=OK

Claro, porque estas haciendo por POST.

Cita
http://34.232.173.37/boletows/sube_actualizar_solicitud/UPE01/T229906141651845643
y este JSON
{
"respuesta": "ACEPTADA",
"respuesta_descripcion": "OK"
}

Recibo     { "codigo": -1,  "mensaje": "La cantidad de parametros no es correcta.",  "datos": { "tipo_error": "aplicacion"  }}

No va por JSON, se manda por "form-data".

Cita
1) Hay un Curl que está generando error...     ¿Ese Curl sería del código  del Ministerio, y es la forma que utilizan ellos para llamar a nuestro WS sube_actualizar_solicitud ?      ¿Podría existir la chance que ellos lo tengan habilitado solo para https y no http ?
Claro, el Ministerio de Infraestructura y Servicios Públicos de la Provincia de Buenos Aires llama a esos servicios cuando el formulario a completar por el alumno expira "respuesta=RECHAZADA&respuesta_descripcion=TRAMITE_EXPIRADO", o cuando el beneficio es aceptado "respuesta=ACEPTADA&respuesta_descripcion=OK".

Nosotros en su momento hicimos pruebas y no usábamos https, pero igualmente le podes consultar a ellos en el email ​contactouniversidades.minfra@gmail.com

Cita
2) ¿ El código de sube_actualizar_solicitud    donde me devuelve los mensajes de error ,   estaría  en WS/clases  ?
Claro, seria WS/clases/ConsultaSubeActualizaSolicitud.class.php.

Cita
3) ¿ Qué me estaría olvidando para porbarlo en el REST CLIENT ? y ver si consigo el OK  o la réplica del error...

En el curl del punto b) te esta respondiendo bien, podes ver en la tabla mbe_solicitudes y revisar si cambiaron las columnas respuesta, respuesta_fecha, respuesta_desc y procesado.

Cita
RESPONSE: Curl failed with error #1: Protocol "http" not supported or disabled in libcurl
Es una mala instalación de curl, que ejecuten curl --version | grep Protocols y vean si soporta el protocolo http.
Referencias:
https://bbs.archlinux.org/viewtopic.php?id=228681
https://forum.openmediavault.org/index.php?thread/19842-protocol-http-not-supported-or-disabled-in-libcurl/

saludos.
4
Título: Re:Preguntas sobre instalación.
Publicado por: Fernando Velarde en Junio 09, 2022, 12:27:14 pm
Gracias Leonardo por toda la ayuda...

Cita
Es una mala instalación de curl, que ejecuten curl --version | grep Protocols y vean si soporta el protocolo http.

Algo de eso hubo.... pero el Ministerio no lo reconoció....  tampoco me importa que no lo haya reconocido sino que funcione....
Luego que les contamos a ellos casi todo en forma parecida a como lo contamos en este Post,  de un día para otro empezó a funcionar bien, pero dicen no haber tocado nada.

Así que Guaraní ya está terminado.

El punto que nos queda es que tenemos dos sistemas distintos. El viejo de alumnos de 2019 para atrás (donde antes funcionaba el ws)  y el Guaraní.  Le pedimos al Ministerio dos usuarios distintos para que cada usuario apunte a un ws diferente y listo, pero nos negó esa posibilidad.  Así que el único ws que quedó relacionado con ellos es el de Guaraní.

Lo que se me ocurre es tocar la clase para que elija en que sistema escribir.... Si el trámite está en la tabla de Guaraní, ok... y si no está en la tabla de Guaraní que vaya a escribir la tabla del sistema viejo (en MySQL)
Título: Re:Preguntas sobre instalación.
Publicado por: Leonel Leonardis en Junio 10, 2022, 11:56:54 am
Hola Fernando,

Cita
Lo que se me ocurre es tocar la clase para que elija en que sistema escribir.... Si el trámite está en la tabla de Guaraní, ok... y si no está en la tabla de Guaraní que vaya a escribir la tabla del sistema viejo (en MySQL)

Vas a tener que personalizar el Web Service de Sube (https://colab.siu.edu.ar/trac/guarani3/wiki/contrib/boleto_estudiantil/ws):

1) En config/basesDeDatos.inc.php vas a tener que agregar una conexión a mysql.

2) En clases/ConsultaSubeActualizaSolicitud.class.php funciones:
2.1) getParametrosQuery: Acá obtenes los parámetros de conexión a la DB.
2.2) existeSolicitud: Valida si existe la solicitud en la DB.
2.3) setConsulta: Arma la query para actualizar la solicitud en la DB.

saludos.
2