Ventas en Estado Pendiente con MP(SOLUCIONADO)

Hola buenos días, tengo una instalación de prueba con docker v 1.2.11 del SQ.

Al pagar la matricula de un curso con mercado pago, el Estado queda “Pendiente”.
Estoy utilizando una ip publica como dispacher.

Adjunto Captura de pantalla del reporte de venta.

Como puedo solucionar el problema?
Cuales son los archivos de logs que debo revisar?

Muchas Gracias.
Saludos.


cap-sq-dck.png

cap-sq-dck.png

Buen dia Diego, el log que podes mirar y mandarnos es el de sq_academico. También el de GCO.

Adjuntalos y vemos que esta pasando.

Muchas Gracias Matias por la respuesta.

Pague nuevamente una matricula de un curso para tener los archivos de logs del día de hoy,

Adjunto los logs y el archivo de instalacion.env.


instalacion.env-09-05-19-docker.txt (1.2 KB)

sq_pagos_20190509.log.txt (2.29 KB)

20190509.log.txt (4.28 KB)

Hola Diego,
podríamos verificar en el archivo de configuración de gco, que los parámetros de configuración se encuentren replicados desde instalacion.env

El archivo es: gco/config/config.ini

url_notificaciones = “http://190.7.227.2/dispatcher_notificacion_mp.php?sender=USER_192.168.0.1
back_url = “http://190.7.227.2/dispatcher_back_mp.php?sender=USER|192.168.0.1:4003|

Recuerden validar usuario, ip y puertos con los que correspondan.

También verificar la url de los archivos dispatcher, desde acá llamando a las mismas obtenemos un 403 Forbidden, si es la que están usando actualmente, sería el motivo por el cual no reciben las notificaciones por parte de Mercadopago.
Pueden verificar en el servidor donde está el dispatcher, el log: mp_log.txt para comprobar que lleguen las notificaciones

Slds

Buenos días gracias Julián por la respuesta.

Revise todo lo que marcaste.

Cambie de host para las notificaciones modificando el archivo config.ini de gco.

back_url = “http://190.7.253.158/dispatcher_back_mp.php?sender=ANONIMO|10.0.2.65:4003|
url_notificaciones = “http://190.7.253.158/dispatcher_notificacion_mp.php?sender=ANONIMO_10.0.2.65

Los archivos de dispacher los copie en el directorio raíz de apache de ese servidor con permisos de ejecución.

Al realizar el pago de una matricula queda otra vez en pendiente.

Esto es el error.log de apache del host del dispacher.

[Fri May 10 15:33:02 2019] [error] [client 23.20.84.99] PHP Notice:  Undefined offset: 1 in /var/www/dispatcher_notificacion_mp.php on line 5
[Fri May 10 15:33:03 2019] [error] [client 34.236.9.110] PHP Notice:  Undefined offset: 1 in /var/www/dispatcher_notificacion_mp.php on line 5
[Fri May 10 15:33:03 2019] [error] [client 23.20.84.99] PHP Notice:  Undefined offset: 1 in /var/www/dispatcher_notificacion_mp.php on line 5
[Fri May 10 15:33:03 2019] [error] [client 23.20.84.99] PHP Notice:  Undefined index: topic in /var/www/dispatcher_notificacion_mp.php on line 6
[Fri May 10 15:33:03 2019] [error] [client 23.20.84.99] PHP Notice:  Undefined index: id in /var/www/dispatcher_notificacion_mp.php on line 7
[Fri May 10 15:33:03 2019] [error] [client 23.20.84.99] PHP Notice:  Undefined offset: 1 in /var/www/dispatcher_notificacion_mp.php on line 5

También adjunto los logs de sq-academico sq-pagos-backend y mp_log que genera dispacher.php
Que mas puedo revisar.

Gracias.
Saludos.


sq_pagos_20190510.log-nueva-publica.txt (2.01 KB)

20190510.log-nueva-ip.txt (2.45 KB)

mp_log.txt (545 Bytes)

Hola Diego,
veo que se está logueando bien los datos de MP que recibe el dispatcher ( más allá de los notice que creería que son de llamadas a la url para probar si se puede acceder )

Podemos verificar que hay acceso desde el dispatcher a los docker con los sistemas?

Desde el host donde está el dispatcher podemos ejecutar:

curl -utoba http://192.168.0.1:4002/sq_academico/rest/articulos
(Acá reemplazar la ip:puerto con la correspondiente al sistema SQ Académico.)

y

curl -X POST -d '{"tipo_documento":1,"numero_documento":"30123456"}' -usq_academico http://192.168.0.1:4003/sq_pagos_backend/generar_token
(Acá reemplazar la ip:puerto con la correspondiente al sistema GCO / SQ Pagos Backend. ) El password por defecto para el usuario [b]sq_academico[/b] es [b]123456[/b]

Slds

Julián pego abajo la salida de pantalla de los comandos corridos donde se encuentra el dispacher.
El problema al parece es con sq-pagos-backend.

var/log/apache2# curl -utoba http://10.0.2.65:4002/sq_academico/rest/articulosEnter host password for user 'toba':
[
    {
        "id": 2,
        "id_externo": null,
        "sistema_externo": null,
        "codigo": "MATRICULA",
        "descripcion": "Matricula",
        "estado": "A",
        "precio_unitario": "100.0000",
        "tags": [
            null
        ]
    },
    {
        "id": 1,
        "id_externo": null,
        "sistema_externo": null,
        "codigo": "PAGOUNICO",
        "descripcion": "Pago Unico",
        "estado": "A",
        "precio_unitario": "100.0000",
        "tags": [
            null
        ]
    },
    {
        "id": 3,
        "id_externo": null,
        "sistema_externo": null,
        "codigo": "CUOTA",
        "descripcion": "Cuota",
        "estado": "A",
        "precio_unitario": "100.0000",
        "tags": [
            null
        ]
    }
]

log de sq-academico.

root@7e0d8ddbeb3e:/var/local/sqacademico/config/log/rest# cat 20190513.log
[2019-05-13 12:09:40] SQ-Academico-Rest.INFO: REST: recurso_articulos::get_list - REMOTE_ADDR:10.0.2.25 [] []

var/log/apache2# curl -X POST -d '{"tipo_documento":1,"numero_documento":"30123456"}' -usq_academico http://190.0.2.65:4003/sq_pagos_backend/generar_token
Enter host password for user 'sq_academico':
curl: (7) couldn't connect to host

No hay registros en el archivo de log de sq-pagos-backend cuando ejecute el comando anterior.

salida de docker ps para confirmar los puertos.

CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                           NAMES
a6e17d5307fd        siutoba/docker-web             "/entrypoint.sh apac…"   2 weeks ago         Up 2 weeks          443/tcp, 0.0.0.0:4004->80/tcp   sq-pagos
df3a1868aac6        siutoba/docker-sq-instalador   "/entrypoint.sh apac…"   2 weeks ago         Up 2 weeks          443/tcp, 0.0.0.0:4003->80/tcp   sq-pagos-backend
f8be2890f042        siutoba/docker-sq-instalador   "/entrypoint.sh apac…"   2 weeks ago         Up 2 weeks          443/tcp, 0.0.0.0:4005->80/tcp   sq-vintec
a69fb245f8b5        siutoba/postgres-9.5-sq        "docker-entrypoint.s…"   2 weeks ago         Up 2 weeks          0.0.0.0:4435->5432/tcp          sq-db-vintec
7e0d8ddbeb3e        siutoba/docker-sq-instalador   "/entrypoint.sh apac…"   2 weeks ago         Up 2 weeks          443/tcp, 0.0.0.0:4002->80/tcp   sq-academico
75be70e4edce        siutoba/postgres-9.5-sq        "docker-entrypoint.s…"   2 weeks ago         Up 2 weeks          0.0.0.0:4433->5432/tcp          sq-db-academico
18ceb53378d5        siutoba/docker-sq-instalador   "/entrypoint.sh apac…"   2 weeks ago         Up 2 weeks          443/tcp, 0.0.0.0:4001->80/tcp   sq-nucleo
bcecaef3e721        siutoba/postgres-9.5-sq        "docker-entrypoint.s…"   2 weeks ago         Up 2 weeks          0.0.0.0:4431->5432/tcp          sq-db-nucleo
af20f7199133        redis                          "docker-entrypoint.s…"   2 weeks ago         Up 2 weeks          0.0.0.0:6379->6379/tcp          sq-redis
b0516ebd3c66        siutoba/postgres-9.5-sq        "docker-entrypoint.s…"   2 weeks ago         Up 2 weeks          0.0.0.0:4444->5432/tcp          sq-testing

config.ini de sq-pagos-backend

root@df3a1868aac6:/var/local/sq_pagos_backend/config# cat config.ini
[debug]
debug_mode = 0

; opciones del backend de sq_pagos
[sq_pagos_backend]
elige_gestor = "0"
gestor_pago_por_defecto = "mercado_pago"
jwt_password = "test"
; Expresado en minutos
jwt_tiempo_expiracion = "5"

; Configuración de la API REST de SQ_UV
[sq_uv_api]
base_url = "http://10.0.2.65:4002/sq_academico/rest/"
user = "toba"
pass = "toba123*-a"

; Configuración de la API REST de SQ_NUCLEO
[sq_nucleo_api]
base_url = "http://10.0.2.65:4001/sq_nucleo/rest/"
user = "toba"
pass = "toba123*-a"

; Ubicación de SQ-Pagos
[sq_pagos]
base_url = http://10.0.2.65:4004/sq_pagos/

; Credenciales de la API de Mercado Pago
[mercado_pago]
client_id = "1757806317914xxx9"
client_secret = "sk068T4XTJb4S9A1qdjhxxxxxKaCNp2QZqivP"
;url de callback para configurar al momento de generar la preferencia de pago
back_url = "http://190.7.253.158/dispatcher_back_mp.php?sender=ANONIMO|10.0.2.65:4003|"
;url completa de la imagen default para mostrar en la página de mercadopago, puede ser el logo de la universidad
imagen_producto_default = "http://www.siu.edu.ar/rd/Logos/SIU/logo_siu_sin_bajada_1.png"
url_notificaciones = "http://190.7.253.158/dispatcher_notificacion_mp.php?sender=ANONIMO_10.0.2.65"

; SQ Auth (usuario y contraseña con los que deben autenticarse la unidad de venta y el nucleo)
; la clave es el usuario y el valor la contraseña.
[sq_uv_users]
sq_academico = "123456"
sq_nucleo = "123456"

; IPs de la unidad de venta y del nucleo. Si están instaladas en el mismo servidor
; es suficiente con especificar una sola IP
[sq_ips]
ip1 = '172.17.0.4'
ip2 = '172.17.0.6'

;especificar en segundos el tiempo maxima de espera
;de respuesta de una conexion a un servicio
[opciones_conexion]
connect_timeout = ""
timeout = ""

[graylog]
activo="0"
host="127.0.0.1"
port="12201"

Algo mas puedo revisar?
Saludos.

Diego,
verifica las urls, en un caso vemos 190.0.2.65 y en el otro 10.0.2.65.

están bien?

No me di cuenta del error.

Ahora esta fue la salida en pantalla desde el host donde se encuentran los archivos de dispacher y la salida del log de sq-pagos-backend.

curl -X POST -d '{"tipo_documento":1,"numero_documento":"30123456"}' -usq_academico http://10.0.2.65:4003/sq_pagos_backend/generar_token
Enter host password for user 'sq_academico':
{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJ0aXBvX2RvY3VtZW50byI6MSwibnVtZXJvX2RvY3VtZW50byI6IjMwMTIzNDU2IiwiaWF0IjoxNTU3NzcwODA5LCJleHAiOjE1NTc3NzExMDl9.GpKdlP9ccaqSnIcxbPqFK4P32pJaSlQjg2OihysOGVTnu5ODs1dAaU32qSevIs8CVrSrGWapZOQIz2s6WBJXcw"}

log sq pagos backend

root@df3a1868aac6:/var/local/sq_pagos_backend/logs# cat sq_pagos_20190513.log 
[2019-05-13 15:06:49] SQ-GCO.INFO: Matched route "{route}". {"route":"POST_generar_token","route_parameters":{"_controller":"sq_pagos_backend:generar_token","_route":"POST_generar_token"},"request_uri":"http://10.0.2.65:4003/sq_pagos_backend/generar_token","method":"POST"} []
[2019-05-13 15:06:49] SQ-GCO.DEBUG: > POST /sq_pagos_backend/generar_token [] []
[2019-05-13 15:06:49] SQ-GCO.DEBUG: < 201 [] []

Diego,
podrías hacer el siguiente cambio en el archivo config.ini de gco …

url_notificaciones = "http://190.7.253.158/dispatcher_notificacion_mp.php?sender=ANONIMO_10.0.2.65"
por
url_notificaciones = "http://190.7.253.158/dispatcher_notificacion_mp.php?sender=ANONIMO|10.0.2.65"

sería cambiar el guión bajo por un pipe,
luego volver a hacer una cobranza y ver si se actualiza el estado.

Hola Julián buenos días.

Ayer realice el cambio, volví hacer una cobranza con una cuenta de prueba de MP y pagada con una tarjeta de prueba.
El estado queda también en pendiente.

Ingrese a mercado pago con la cuenta utilizada en GCO como vendedora y figuran las ventas de las pruebas.

Pego los logs del día de ayer de la ultima prueba,

Muchas Gracias, Saludos.

root@autogestion:/var/www# cat mp_log.txt
SENDER NAME: ANONIMO | SENDER IP: 10.0.2.65 | Fecha: 2019-05-13 15:48:08 - Topic: merchant_order - ID: 1107127969
SENDER NAME: ANONIMO | SENDER IP: 10.0.2.65 | Fecha: 2019-05-13 15:48:08 - Topic: payment - ID: 4764750993
SENDER NAME: ANONIMO | SENDER IP: 10.0.2.65 | Fecha: 2019-05-13 15:48:08 - Topic:  - ID: 
SENDER NAME: ANONIMO | SENDER IP: 10.0.2.65 | Fecha: 2019-05-13 15:48:09 - Topic: merchant_order - ID: 1107127969



root@df3a1868aac6:/var/local/sq_pagos_backend/logs# cat sq_pagos_20190513.log 
[2019-05-13 15:46:43] SQ-GCO.INFO: Matched route "{route}". {"route":"GET_sq_uv_consumos_externos_token","route_parameters":{"_controller":"sq_uv_api:get_consumo_externo","token":"e65f1513-c5af-4238-b7de-3768c5d50b88","_route":"GET_sq_uv_consumos_externos_token"},"request_uri":"http://10.0.2.65:4003/sq_pagos_backend/sq_uv/consumos_externos/e65f1513-c5af-4238-b7de-3768c5d50b88","method":"GET"} []
[2019-05-13 15:46:43] SQ-GCO.DEBUG: > GET /sq_pagos_backend/sq_uv/consumos_externos/e65f1513-c5af-4238-b7de-3768c5d50b88 [] []
[2019-05-13 15:46:44] SQ-GCO.DEBUG: < 200 [] []
[2019-05-13 15:46:44] 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":"2","_route":"GET_sq_uv_importe_prog_ventas_convenios_id_programacion_venta_convenios"},"request_uri":"http://10.0.2.65:4003/sq_pagos_backend/sq_uv/importe_prog_ventas_convenios/2","method":"GET"} []
[2019-05-13 15:46:44] SQ-GCO.DEBUG: > GET /sq_pagos_backend/sq_uv/importe_prog_ventas_convenios/2 [] []
[2019-05-13 15:46:44] SQ-GCO.DEBUG: < 200 [] []
[2019-05-13 15:46:47] SQ-GCO.INFO: Matched route "{route}". {"route":"POST_mercado_pago_consumo","route_parameters":{"_controller":"mercado_pago:consumo","_route":"POST_mercado_pago_consumo"},"request_uri":"http://10.0.2.65:4003/sq_pagos_backend/mercado_pago/consumo","method":"POST"} []
[2019-05-13 15:46:47] SQ-GCO.DEBUG: > POST /sq_pagos_backend/mercado_pago/consumo [] []
[2019-05-13 15:46:50] SQ-GCO.DEBUG: < 201 [] []



root@7e0d8ddbeb3e:/var/local/sqacademico/config/log/rest# cat 20190513.log
[2019-05-13 15:45:52] SQ-Academico-Rest.INFO: Suscripcion novedad creada id: 6 [] []
[2019-05-13 15:46:39] SQ-Academico-Rest.INFO: REST: recurso_servicios_instancias_valorizaciones::get_list - REMOTE_ADDR:10.0.2.67 [] []
[2019-05-13 15:46:42] SQ-Academico-Rest.INFO: REST: recurso_solicitudes_consumos_externos::post_list - REMOTE_ADDR:10.0.2.67 [] []
[2019-05-13 15:46:42] SQ-Academico-Rest.INFO: REST: recurso_servicios_instancias_valorizaciones::get_list - REMOTE_ADDR:10.0.2.67 [] []
[2019-05-13 15:46:42] SQ-Academico-Rest.INFO: REST: recurso_solicitudes_consumos_externos::get_list - REMOTE_ADDR:10.0.2.67 [] []
[2019-05-13 15:46:43] SQ-Academico-Rest.INFO: REST: recurso_consumos_externos::get - REMOTE_ADDR:172.17.0.1 [] []
[2019-05-13 15:46:44] SQ-Academico-Rest.INFO: REST: recurso_importes_prog_ventas_convenios::get_list - REMOTE_ADDR:172.17.0.1 [] []
[2019-05-13 15:46:47] SQ-Academico-Rest.INFO: REST: recurso_consumos_externos::post_list - REMOTE_ADDR:172.17.0.1 [] []
[2019-05-13 15:46:47] SQ-Academico-Rest.INFO: RECURSO CONSUMOS EXTERNOS - POST: Registrar un consumo: array (   'token' => 'e65f1513-c5af-4238-b7de-3768c5d50b88',   'parametros' =>    array (     'id_condicion_venta' => 1,     'id_medio_pago' => '5',     'id_servicio_instancia_prog_venta' => 2,     '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' => '',     ),     'jwt' => NULL,   ), ) [] []
[2019-05-13 15:46:47] SQ-Academico-Rest.INFO: RECURSO CONSUMOS EXTERNOS - POST: Consumo creado id: 17 [] []
[2019-05-13 15:46:48] SQ-Academico-Rest.INFO: REST: recurso_ventas::get_list - REMOTE_ADDR:172.17.0.1 [] []

El problema se resolvió por hangouts hablando con Julián.

Una de las url de notificación en GCO que apunta al dispacher no esta bien configurada, en el siguiente archivo.

root@df3a1868aac6:/var/local/sq_pagos_backend/config/config.ini

Este es un ejemplo como debe quedar definida.


....
url_notificaciones = "http://ippublica/dispatcher_notificacion_mp.php?sender=ANONIMO|iplocal:4003"

Muchas Gracias por la ayuda.

Saludos.