TransbankDevelopers / transbank-plugin-woocommerce-webpay

OBSOLETO: Código fuente de Plugin WooCommerce para Transbank Webpay
BSD 3-Clause "New" or "Revised" License
19 stars 17 forks source link

Pedidos con forma de Pago WebPay no disparan webhooks con status "processing" (v2.7.7) #146

Closed davibertolini closed 3 years ago

davibertolini commented 4 years ago

Buenas tardes, reportamos que se presenta la siguiente falla al momento de cambiar estatus de una orden Woocommerce durante el Flujo de Pago de la Orden con WebPay y la información que se dispara en los Webhooks.

Antecedentes:

Problema

Cuando se crea la orden en Woocommerce, se dispara el Webhook con el status "pending" pero este estatus, según la documentación, no garantiza que el pago se haya realizado correctamente, por lo que el sistema que recibe el webhook ignora estas cuentas.

orderflow

Luego, cuando la transacción se confirma como Pagada con WebPay Woocommerce dispara una o más llamadas hacia el sistema que recibe los Webhooks, al menos uno de ellos se asume que debe venir con el status "processing" ya que según la documentación Woocommerce este es el estatus que se considera como “aceptado” (es decir que la transacción y forma de pago fueron aceptados). Solo las llamadas de Woocommerce que llegan al sistema que recibe los Webhooks con el estatus processing son las que Novohit utiliza para crear cuenta.

Las ordenes pagadas con WebPay nunca están llegando al sistema con el estatus processing, todas las otras formas de pago si.

Esto parece que fue reportado en el Pull #141 y en el Fix 2.7.6, pero como indicado en los antecedentes tenemos instalado el 2.7.7 y el problema persiste.

En este momento tenemos deshabilitado el plugin ya se están recibiendo cientos de ordenes al día y el pago genera incertidumbre ya que el sistema que recibe los webhooks es el sistema central ERP que procesa las ordenes de trabajo.

Quedamos atentos a sus comentarios. Gracias de antemano.

TBMSP commented 4 years ago

Yo llame a soporte de transbank, y me dijeron que era el tema de las cookies, por una actualización de Google Chrome "SameSite=None" lo intente revisar y hacer los cambios en la plataforma, pero sigo igual, no se si estoy haciendo algo mal o algo así, pero esa es la respuesta que me dieron, igual sigo investigando el samesite pero te lo dejo en caso de que puedas solucionarlo hasta encontrar alguna solución

truchosky commented 4 years ago

revisaste en el log si fueron enviados?, yo también utilizo webhooks (solo los que van con estado processing) y no he tenido ningun problema, version 2.7.6 transbank , php 7.4.9 y nginx, woocomerce y wordpress a la última version, también resulta con otros medios de pago como linkify, flow, khipu, etc

davibertolini commented 4 years ago

@truchosky Si, Los logs de woocommerce fueron revisados y los webhook no se disparan. Las órdenes quedan con el status "Processing", pero ese WebHook no se dispara hacia al sistema. Recibimos decenas y aveces centenas de órdenes durante los fines de semana y se presentó solo en algunas órdenes. ¿ en su infraestructura ustedes tienen algún sistema de caching?

@TBMSP No revisé las ordenes que tuvieron este problema si fueron realizadas con Chrome.

truchosky commented 4 years ago

redis, también tenemos (hasta el momento no lo hemos usado) un proceso que importa las ordenes de woocommerce cada 1 hora, solo las ordenes en procesando (por si alguna vez no se envía el webhook), sin embargo hasta el momento no ha pasado con ninguna

ffiebig commented 3 years ago

@truchosky ojo que los productos digitales no deberían caer en processing sino que en Completed

truchosky commented 3 years ago

@ffiebig la verdad no creo, ningún plugin de pago (webpay, khipu, flow, payku, etc) deja los pedidos de los productos "virtuales" en completado, porque debería quedar en completado?, si ese fuera el caso no tendría sentido usar webhooks, nosotros usamos esa herramienta justamente para "procesar" los pedidos, una vez procesado en el sistema externo de woocommerce se marca como completado (directamente en éste con la api de woocomerce), entonces todos los pedidos pagados (procesando) pasan a completado una vez se procesan

gdespirito commented 3 years ago

Hola! Este plugin ya no recibirá mejoras, por lo que recomendamos cambiarse al plugin REST: https://github.com/TransbankDevelopers/transbank-plugin-woocommerce-webpay-rest

davibertolini commented 3 years ago

Hola! Este plugin ya no recibirá mejoras, por lo que recomendamos cambiarse al plugin REST: https://github.com/TransbankDevelopers/transbank-plugin-woocommerce-webpay-rest

@gonzunigad el nuevo Plugin requiere un API Key (ya no solicita los certificados o llave privada como el plugin anterior), sin embargo no está documentado de dónde se obtiene el API Key.

Uno podría asumir que el API Key se descarga desde el Portal Servicios https://www.transbank.cl/portal-servicios/ sección WebPay pero no sale allí, además el portal servicios arroja error (desde cualquier navegador).

Screen Shot 2020-12-03 at 16 43 19

truchosky commented 3 years ago

x 2, donde está la api key?

gdespirito commented 3 years ago

Hola! Acá esta la doc: https://transbankdevelopers.cl/documentacion/como_empezar#obtener-tu-llave-secreta-proceso-de-validacion

La envía soporte@transbank.cl una vez que envían el documento de validación. Ya no hay certificados que generar ni nada, solo vuelvan a enviar el documento de validación (el de REST) y en 24 horas deberían enviarles su api key :)