open-pay / openpay-magento2-cards

Openpay integration for Magento 2 (Credit-Debit cards)
Apache License 2.0
4 stars 14 forks source link

configuration #1

Closed troncar closed 7 years ago

troncar commented 8 years ago

Hi, I'm getting this error message when saving my configuration:

"Something went wrong while saving this configuration: Could not connect with webhook service, verify URL"

fedebalderas commented 8 years ago

Este error se puede deber a lo siguiete:

Cuando se instala el módulo, automáticamente se crea un webhook para recibir notificaciones de pagos. Si te encuentras trabajando en un ambiente local (localhost), el servicio de Openpay que valida que la URL del webhook exista por obvias no alcanza tu instalación local y arroja este error.

No se si este sea tu caso?

Saludos!

troncar commented 8 years ago

@fedebalderas Me manda el siguiente error Something went wrong while saving this configuration: Expected 200 response from http://.../openpay/index/webhook but was 503 - Service Unavailable

La url me manda el siguiente mensaje: There has been an error processing your request

Exception printing is disabled by default for security reasons.

Error log record number: 1324383305180

Dentro del log de errores: "Notice: Trying to get property of non-object in /var/www/..../vhost/app/code/Openpay/Banks/Controller/Index/Webhook.php on line 40" /var/www/....../vhost/app/code/Openpay/Banks/Controller/Index/Webhook.php(40): Magento\Framework\App\ErrorHandler->handler(8, 'Trying to get p...', '....', 40, Array)

fedebalderas commented 8 years ago

Que tal @troncar ,

Pero esto ocurre cuando guardas las configuraciones del módulo?? Podrías adjuntar impresiones de pantalla de esto de favor.

De igual forma no se si pudieras revisar tu log de Openpay (dentro del menú izquierdo del dashboard, es la última opción) para ver el error que arroja de este lado también.

Quedo en espera de tus comentarios

Saludos!

troncar commented 8 years ago

@fedebalderas en log de OpenPay me manda lo siguiente: { "category": "request", "description": "Expected 200 response from http://.../openpay/index/webhook but was 500 - Internal Server Error", "http_code": 502, "error_code": 6003, "request_id": "4a0f95e0-f2fa-4295-b686-afc09be68cb6" }

fedebalderas commented 8 years ago

Pareciera que el problema es que no se manda el host, por ende no encuentra la URL, dejame revisarlo y subo la corrección.

Que versión de PHP es tu servidor?

Saludos!

troncar commented 8 years ago

Es 5.5.9

fedebalderas commented 8 years ago

Podrías agregar una impresión de pantalla de tu log de Openpay, para poder ver la petición... Te adjunto una impresión de pantalla de como debe de ser la petición (marca error porque es un ambiente local) screen shot 2016-04-28 at 6 24 32 pm

fedebalderas commented 8 years ago

@troncar , podrías pasarme el host de tu plataforma para simular desde Postman una petición de verificación y ver si se puede alcanzar.

Saludos!

troncar commented 8 years ago

info_logopen

fedebalderas commented 8 years ago

Hice la prueba y si alcanza el endpoint de tu servidor, el problema es cuando quiere obtener la propiedad "type" del objeto que se te envía.

No se si puedas darme acceso FTP a tu servidor para ubicar el problema como tal y darle solución.

Saludos!

humbertoleite commented 7 years ago

Hola,

Estoy tenendo el mismo fallo. @troncar has solucionado?

saludos!

troncar commented 7 years ago

Si, hace unos meses pude hacer las pruebas bien.

edcg commented 6 years ago

Estoy teniendo el mismo problema. ¿Cómo lo solucionaron?

patrickoliveras commented 6 years ago

Que tal! Si van a cerrar estos Issues sería bastante útil que publicaran la manera en que lo resolvieron. Cómo solucionaron este problema?

patrickoliveras commented 6 years ago

Usando el log (https://magento.stackexchange.com/questions/92434/magento-2-replacement-for-magelog-method/92442#92442), hice una solicitud a mano desde el dashboard de Openpay y capturé el código de verificación, ya que cuando realizaba la configuración desde el admin del Módulo, el json llegaba vacío image

fedebalderas commented 6 years ago

@patrickoliveras El plugin registra automáticamente el webhook, tu no debes de darlo de alta en el dashboard, de hecho hay un problema que sucede al registrar primero el webhook en el dashboard de Openpay porque cuando el plugin lo intenta registrar este detecta que ya existe (aunque no este activado) y no lo activa.

Si tu webhook no esta activado, borralo y después en el backoffice de tu tienda dale "Guardar" a la configuración del plugin (aunque no modifiques nada), esto hará el intento de registrar tu webhook.

Ahora bien, también debes verificar si en realidad tu plugin apunta a la rama de dev-master en el composer.json y de no ser así, modificarlo y hacer un composer update.

patrickoliveras commented 6 years ago

Sí, cuando estaba revisando las causas fue la primera suposición que hice (el que estuviera registrado el webhook). Así que en todos los intentos (haciéndolo con 'Guardar' en el panel de métodos de pago) revisaba que no estuviera registrado ya en el Dashboard de openpay.

Hasta donde sé, el método de pago funciona a pesar de que marque que el webhook existe. Y desde que hice el webhook con confirmación manual, he podido realizar los pagos en los tres métodos de su servicio.

Y siempre he estado trabajando con dev-master.

patrickoliveras commented 6 years ago

Para hacer la confirmación manual, logueé el json de las solicitudes que se hacían a /openpay/index/webhook

patrickoliveras commented 6 years ago

image Aquí los primeros dos son las solicitudes que se hicieron a la URL del webhook con 'Guardar'. Ambos verificando que no estuviera registrado ya un webhook. El último es de cuando lo hice manualmente.

fedebalderas commented 6 years ago

@patrickoliveras Cuando la validación del webhook se hace a través de la API no regresa nada, por eso no pinta nada, únicamente cuando se hace forma manual. Y si, los métodos de pago deben de funcionar independientemente de si el webhook este registrado o no, esto únicamente es para actualizar el estatus de los pagos offline.

Pero entonces ya no sé cual es tu problema si ya tienes inclusive el código de verificación si lo hiciste de forma manual.

patrickoliveras commented 6 years ago

Lo de la solución manual lo estoy poniendo aquí para compartirlo, ya que usando "Guardar" da error en app/code/Openpay/Banks/Controller/Index/Webhook.php línea 40, que intenta evaluar la propiedad type de un json que no lo tiene (el que genera la plataforma {}).

fedebalderas commented 6 years ago

@patrickoliveras Podrías compartirme en screenshot de como tienes esta clase: app/code/Openpay/Banks/Controller/Index/Webhook.php

patrickoliveras commented 6 years ago

@fedebalderas Diste en el clavo! Jaja

Estaba probando con una instalación local y creí que tenía dev-master en el de staging. Ese era el problema.

Se puede revisar si tienes esta situación, checando que en composer.json exista la línea

"openpay/magento2-banks": "1.3"

en lugar de la que debes tener

"openpay/magento2-banks": "dev-master"

La comparación de código de app/code/Openpay/Banks/Controller/Index/Webhook.php fue el que lo delató.

image

vs.

image

Muchas gracias!

QuiqueM commented 4 years ago

Hola entonces no funciona de manera local ? quiseguardar cambios y me marco este error Something went wrong while saving this configuration: Could not connect with webhook service, verify URL

fedebalderas commented 4 years ago

Ese error se muestra cuando también esta instalado un plugin de pagos offline (SPEI o Pago en tiendas), ya que estos si ocupan de un webhook para que los pagos se confirmen y cambien el estatus de la orden de compra (ya que no son pagos que se completan en tiempo real).

La cuestión es que cuando trabajas de forma local, Openpay trata de validar el webhook (la URL) y al ser el tuyo un ambiente local y no estar público en internet, Openpay no tiene modo de alcanzarlo y por ende no puede verificarlo.

Sin embargo para pago con tarjetas no ocupas un webhook y puede cerrar un flujo de pago completo o hacer pruebas con tarjetas que te devuelvan error, probar el 3D Secure, etc.