Avances de pruebas realizadas en los diferentes medios de pago 2.0.0

Buenas tardes,

En esta ocasión les presento las pruebas realizadas en la nueva versión de SQ, antes de enviar los errores presentados, se listan las verificacaciones realizadas:

Pago por ventanilla
Ahora si los errores, se logra realizar todo el circuito de cobranza pero en el momento de cerrar la caja no envia las ventas a nucleo, en el monitor de procesos llego a visualizarce lo siguiente, se adjunta imagen:

500array ( 'error' => 500, 'mensaje' => '500 Internal Server Error', 'descripcion' => 'REST_API_NUCLEO:Se ha producido una violación de la restricción impuesta por un índice único o una restricción de unicidad.El convenio asociado no esta configurado o no existe:', )

Se ingreso a los log de rest de academico para ver en que momento tiraba error, en este caso fue en el metodo post de ventas, por lo tanto ingrese al rest de nucleo para ver si el POST de venta se ejecutaba bien, pero nunca se llegue a visualizar los parametros del método post, sino que mostro lo siguiente:

Errors

Resolver error at paths./ventas.post.parameters.0.schema.properties.tipo_servicio.items.$ref
Could not resolve reference: Could not resolve pointer: /definitions/Tipo_Servicio does not exist in document
Resolver error at paths./ventas.post.parameters.0.schema.properties.cliente.$ref
Could not resolve reference: undefined undefined
Resolver error at paths./ventas.post.parameters.0.schema.properties.cobranza.items.properties.comprobante.$ref
Could not resolve reference: undefined undefined
Resolver error at paths./ventas.post.parameters.0.schema.properties.articulos.items.properties.servicio.$ref
Could not resolve reference: undefined undefined
Resolver error at paths./ventas.post.parameters.0.schema.properties.cobranza.items.properties.cliente_comprobante.$ref
Could not resolve reference: undefined undefined

Pago por transferencia bancaria
En este caso se notifico la venta a nucleo pero al querer validarlo en la operación “Validar Comprobantes Externos” arroja el siguiente error, se adjunta imagen.

No se reconoce el formato del archivo: /usr/local/proyectos/nucleo-2.0.0/toba/www/img/comprobantes/comprobante_venta__14_1600976687.jpeg 

Se cambio comprobante en otro formato pero sigue igual.

Pago por Mercado Pago
Sobre MP se configuro el dispatcher en otro server, pero estamos en el proceso de ponerlo publico, para no ponerlo publico a gco y pagos, ya que tenemos instalados los sistemas, en un entorno de producción.

Saludos,


Screenshot_2020-09-30 SQ NAcleo - Validar comprobantes externos.png

Screenshot_2020-09-30 SQ NAcleo - Validar comprobantes externos.png

Screenshot_2020-09-30 SQ - AcadAmico - Monitor de Procesos.png

Screenshot_2020-09-30 SQ - AcadAmico - Monitor de Procesos.png

Screenshot_2020-09-30 Swagger UI.png

Screenshot_2020-09-30 Swagger UI.png

Buenas,

Sobre el error que aparecia en la operación de validación, es porque mi carpeta de instalación se llama se nucleo-2.0.0
La solución fue hardcodear el codigo de la siguiente manera:

class pant_detalles_validar_comprobantes_externos extends toba_ei_pantalla
{
    public function generar_layout()
    {
        parent::generar_layout();

        $path = $this->controlador()->get_datos_seleccion()['id_gestor_archivos'];

        // la imagen esta dentro de toba/wwww/img/comprobantes
        $src = substr($path, strpos($path, 'img/comprobantes/'));

        //se agregan part3, y part4
        list($part1, $part2, $part3, $part4) = explode(".", $path);

        switch ($part4) {
            case "pdf":
            case "png":
            case "jpg":
            case "jpeg":
                echo "<embed src='" . $src . "' width='" . 800 . "' height='" . 500 . "'>";
                break;
            default:
                throw new Exception("No se reconoce el formato del archivo: " . $path);
        }
    }
}

Se pudo completar el circuito pero en guarani no aparece como aceptada, los workers ya fueron configurado con el supervisor y anda perfecto, se comprobaron en las tablas de resthook. y en la operación de “listado por ventas” de academico.

Hola Carlos, perdón la demora.

Sobre el pago por ventanilla. El alumno tenia asociado un convenio (beca)?
Porque el mensaje que nos compartís hace referencia a un convenio que no esta asociado o no existe.

Indicame si utilizaron esta funcionalidad. De ser así, chequea en Núcleo y Académico, que el convenio exista en la operación Administrar Convenios.

Los convenios se dan de alta en Núcleo y se configuran en Académico.

Hola Matias,

Sobre el pago por ventanilla. El alumno tenia asociado un convenio (beca)?
No tengo configurado ningun convenio.

Carlos, vamos a contactarte para coordinar una reunión.

Buenas tardes,

En esta ocasión ya se iniciaron las pruebas de mercado pago, en donde se configuro el dispatcher como lo indica el README del siguiente repo https://hub.siu.edu.ar/sanaviron-quilmes/dispatcher
En este caso nose si se trata de un error o no, es decir se completa el circuito de cobranza por medio de MP pero en sq-academico lo registra en estado de “inicio de cobro digital”, se revisaron los logs y se encontro lo siguiente:

logs de gco - por mi parte no visualizo nada extraño

[2020-10-08 14:48:56] SQ-GCO.INFO: Matched route "{route}". {"route":"GET_sq_uv_consumos_externos_token","route_parameters":{"_controller":"sq_uv_api:get_consumo_externo","token":"65bc473c-267c-4b77-980c-a45d7965433e","_route":"GET_sq_uv_consumos_externos_token"},"request_uri":"https://sanaviron-gcoprueba.unpaz.edu.ar/sq_pagos_backend/sq_uv/consumos_externos/65bc473c-267c-4b77-980c-a45d7965433e","method":"GET"} []
[2020-10-08 14:48:56] SQ-GCO.DEBUG: > GET /sq_pagos_backend/sq_uv/consumos_externos/65bc473c-267c-4b77-980c-a45d7965433e [] []
[2020-10-08 14:48:56] SQ-GCO.DEBUG: < 200 [] []
[2020-10-08 14:48:56] SQ-GCO.INFO: Matched route "{route}". {"route":"GET_sq_uv_importe_prog_ventas_convenios_id_programacion_venta_convenios","route_parameters":{"_controller":"sq_uv_api:get_importe_prog_ventas_convenios","convenios":false,"id_programacion_venta":"7","_route":"GET_sq_uv_importe_prog_ventas_convenios_id_programacion_venta_convenios"},"request_uri":"https://sanaviron-gcoprueba.unpaz.edu.ar/sq_pagos_backend/sq_uv/importe_prog_ventas_convenios/7","method":"GET"} []
[2020-10-08 14:48:56] SQ-GCO.DEBUG: > GET /sq_pagos_backend/sq_uv/importe_prog_ventas_convenios/7 [] []
[2020-10-08 14:48:57] SQ-GCO.DEBUG: < 200 [] []
[2020-10-08 14:49:06] SQ-GCO.INFO: Matched route "{route}". {"route":"POST_mercado_pago_consumo","route_parameters":{"_controller":"mercado_pago:consumo","_route":"POST_mercado_pago_consumo"},"request_uri":"https://sanaviron-gcoprueba.unpaz.edu.ar/sq_pagos_backend/mercado_pago/consumo","method":"POST"} []
[2020-10-08 14:49:06] SQ-GCO.DEBUG: > POST /sq_pagos_backend/mercado_pago/consumo [] []
[2020-10-08 14:49:09] SQ-GCO.DEBUG: < 201 [] []
[2020-10-08 14:49:43] SQ-GCO.INFO: Matched route "{route}". {"route":"GET_mercado_pago_exito_suscripcion","route_parameters":{"_controller":"mercado_pago:exito_suscripcion","_route":"GET_mercado_pago_exito_suscripcion"},"request_uri":"https://########/sq_pagos_backend/mercado_pago/exito_suscripcion?collection_id=10524312902&collection_status=approved&external_reference=9627c707-4e47-4215-85e3-aae118ac7f93&merchant_account_id=null&merchant_order_id=1856293025&on=&payment_id=10524312902&payment_type=credit_card&preference_id=441794375-b0bb5e7e-e282-4489-82f5-22b0f2efe624&processing_mode=aggregator&site_id=MLA&status=approved","method":"GET"} []
[2020-10-08 14:49:43] SQ-GCO.DEBUG: > GET /sq_pagos_backend/mercado_pago/exito_suscripcion?on&collection_id=10524312902&collection_status=approved&payment_id=10524312902&status=approved&external_reference=9627c707-4e47-4215-85e3-aae118ac7f93&payment_type=credit_card&merchant_order_id=1856293025&preference_id=441794375-b0bb5e7e-e282-4489-82f5-22b0f2efe624&site_id=MLA&processing_mode=aggregator&merchant_account_id=null [] []
[2020-10-08 14:49:44] SQ-GCO.DEBUG: < 302 https://sq-guarani.unpaz.edu.ar/autogestion/inscripcion_cursos/elegir_actividad_curso/f2f7b9969321f22a693e039fafc4c3805264a4cb/6a182181d5dd62bca41202edd65ba47bba7779ab?sq=1&transaccion_guarani=1257965&estado_tramite_pago=1&nro_transaccion=10524312902 [] []

log de academico - lo unico que me hace dudar es porque tengo false en notificar a nucleo

[2020-10-08 14:48:54] SQ-Academico-Rest.INFO: REST: recurso_solicitudes_consumos_externos::get_list - REMOTE_ADDR:###### [] []
[2020-10-08 14:48:56] SQ-Academico-Rest.INFO: REST: recurso_consumos_externos::get - REMOTE_ADDR:###### [] []
[2020-10-08 14:48:57] SQ-Academico-Rest.INFO: REST: recurso_importes_prog_ventas_convenios::get_list - REMOTE_ADDR:###### [] []
[2020-10-08 14:49:07] SQ-Academico-Rest.INFO: REST: recurso_consumos_externos::post_list - REMOTE_ADDR:###### [] []
[2020-10-08 14:49:07] SQ-Academico-Rest.INFO: RECURSO CONSUMOS EXTERNOS - POST: Registrar un consumo: array (   'token' => '65bc473c-267c-4b77-980c-a45d7965433e',   'parametros' =>    array (     'id_condicion_venta' => 1,     'id_medio_pago' => '5',     'id_servicio_instancia_prog_venta' => 7,     'id_canal_venta' => 1,     'utiliza_credito_disponible' => false,     'convenios' =>      array (     ),     'cliente_comprobante' =>      array (       'es_persona_fisica' => false,       'nombres' => '',       'apellido' => '',       'numero_documento' => '',       'tipo_documento' => '',       'email' => '',       'domicilio' => '',       'razon_social' => '',       'identificacion_fiscal' => '',     ),     'servicios_medios_pagos_exclusiones' =>      array (     ),   ), ) [] []
[2020-10-08 14:49:07] SQ-Academico-Rest.DEBUG: SIU\SQ\Uv\modelo\venta::es_notificable_al_nucleo {"venta":20,"medio de pago":"5","notificar":"false"} []
[2020-10-08 14:49:07] SQ-Academico-Rest.INFO: RECURSO CONSUMOS EXTERNOS - POST: Consumo creado id: 20 [] []
[2020-10-08 14:49:07] SQ-Academico-Rest.INFO: REST: recurso_ventas::get_list - REMOTE_ADDR:###### [] []
[2020-10-08 14:49:07] SQ-Academico-Rest.INFO: REST: recurso_ventas::put - REMOTE_ADDR:###### [] []
[2020-10-08 14:49:07] SQ-Academico-Rest.INFO: Actualizar el estado de la venta con ID: 20. [] []
[2020-10-08 14:49:07] SQ-Academico-Rest.INFO: Venta actualizada id: 20 [] []
[2020-10-08 14:49:44] SQ-Academico-Rest.INFO: REST: recurso_solicitudes_consumos_externos::get_list - REMOTE_ADDR:###### [] []
[2020-10-08 14:49:45] SQ-Academico-Rest.INFO: REST: recurso_servicios_instancias_valorizaciones::get_list - REMOTE_ADDR:###### [] []
[2020-10-08 14:49:45] SQ-Academico-Rest.INFO: REST: recurso_solicitudes_consumos_externos::get_list - REMOTE_ADDR:###### [] []

Hola Ismael,

Me parece que no te están llegando las notificaciones del agente de cobranza (en este caso Mercado Pago).

Primero podrías revisar la tabla ‘notificaciones’ de la base ‘notificaciones’ para corroborar que estén llegando correctamente las notificaciones de MercadoPago. (Revisar si el campo ‘notificado’ esta en True o False)

Si se encuentran en False deberías verificar si en el módulo GCO se encuentra iniciado el proceso ‘pull.sh’ (Es el encargado de buscar los mensajes en el servidor publico que recibió las notificaciones del agente de cobranza)

Contame como te fue.
Saludos

Hola Esteban,

Se revisó la base y el campo notificado estaba en false, por lo tanto procedí a iniciar el pull.sh y realizar el cobro por mercado pago en este caso en el campo notificado arrojo “true” pero en académico seguía en “inicio de cobro digital” y en los logs aparece lo mismo que subí anteriormente.

Algo que podría mencionar de la base notificaciones, es que en el campo sender_ip no trae nada, ¿eso podría ser la causante del error?
Por eso mismo voy a estar debugiando los archivos del dispatcher, si encuentro algo les comento.

Saludos

Hola Ismael,

El campo sender_ip ya no se utilizaría mas. Revisaste el log de GCO para ver como llego la notificación? Por que cuando inicias el demonio “pull.sh” invoca al dispatcher y realiza una redirección a la API de GCO para que luego GCO invoque a Académico.

Revisa esos logs en el momento que hiciste la prueba.

Hola Esteban,
Estuve examinando los log y por mi parte veo una comunicación de gco, dispatcher, mercado pago y sq-academico.
Sobre el “pull.sh” se encuentra configurado con el supervisor por lo tanto puedo examinarlo que se esta ejecutando.

datos de la tabla notificaciones
51 “TEST” “topic=merchant_order&id=1876298636” "{“resource”:"https://api.mercadolibre.com/merchant_orders/1876298636",“topic”:“merchant_order”}" true “2020-10-14 16:54:19.943921”
52 “TEST” “topic=no-topic&id=000000000” “{“action”:“payment.created”,“api_version”:“v1”,“data”:{“id”:“10585156336”},“date_created”:“2020-10-14T19:53:42Z”,“id”:6543461397,“live_mode”:true,“type”:“payment”,“user_id”:“441794375”}” true “2020-10-14 16:54:20.872591”
53 “TEST” “topic=payment&id=10585156336” "{“resource”:"https://api.mercadolibre.com/collections/notifications/10585156336",“topic”:“payment”}" true “2020-10-14 16:54:20.912089”
54 “TEST” “topic=merchant_order&id=1876298636” "{“resource”:"https://api.mercadolibre.com/merchant_orders/1876298636",“topic”:“merchant_order”}" true “2020-10-14 16:54:20.949553”

Además se adjunta los logs de gco, del dispatcher y academico.


LOG-NOTIFICACION.rar (3.51 KB)

Buenas, retomo este tema ya que sigo sin lograr concretar el circuito de mercado pago. No puedo seguir avanzando porque me aparece en académico como “Inicio de cobro digital” y en guaraní en pendiente. Actualmente estoy realizando las pruebas en un entorno de producción, usando el dispatcher que compartieron.
El dispatcher está público.
Se verifico que el pull.sh se esté ejecutando correctamente en gco y logramos ver que funciona, accediendo a los access.log de apache (server de dispatcher)
En todos los logs que verifique encontraba resultados 200 y por otro lado 302 (en gco) que hace referencia al redireccionamiento a guaraní.
Los logs que se generan son los mismos que compartí anteriormente.
Que logs tendría que verificar? o que configuración me estaría faltando?

gco 2.0.3
academico 2.0.4
guarani 3.17.0

Si necesitan más información, no duden en solicitarlo.
Desde ya gracias

Hola Ismael, te dejo algunas opciones donde mirar. El conflicto continua en las notificaciones de mp que no llegan.
Avisanos cualquier novedad.

Corroborar el archivo config.ini de GCO, ejemplo:
; Credenciales de la API de Mercado Pago
[mercado_pago]
activo = “1”
client_id = “60AAAAAAAAAAAAA”
client_secret = “KhAAAAAAAAAAAAAA”
back_url = “http://sky.siu.edu.ar/dispatcher/sq_back_mp.php?sender_ip=127.0.0.1:4003&ac=

Te dejo un link para repasar la configuración de mercadopago: https://documentacion.siu.edu.ar/wiki/SIU-Sanaviron-Quilmes/version2.0.0/mercado.pago

Chequear que los servidores donde se encuentre GCO y SQ-Pagos estén públicos. Realizar pruebas para descartar si efectivamente es así.
Por último, consultar con el equipo de redes para descartar que haya algún tipo de restricción.