open-pay / openpay-woocommerce

10 stars 9 forks source link

Inconsistencia en manejo de errores. #21

Closed jalop123j closed 5 years ago

jalop123j commented 6 years ago

Ayuda urgente por favor!!!

Hola, tengo exactamente el mismo problema descrito por este issue: https://github.com/open-pay/openpay-woocommerce/issues/17

Esto esta pasando en mi tienda orem.com.mx

Tengo el mismo problema en una tienda de prueba development.orem.com.mx. Solo tengo habilitados los plugins de woocommerce y open pay y un tema diferente.

Despues de que existe un error, las peticiones siguientes mandan el mismo source id y recibo el error: This source_id was already used

El comercio se llama OREM. Estoy utilizando Open pay Versión 1.3.1

Llamada 1:

{ "method": "card", "amount": 408, "currency": "mxn", "source_id": "kqlwgxgyfscaemihbn2q", "device_session_id": "aNkTQhVbJ3MGWNGxyiNxKa6LLMXkAJtr", "description": "Charge for jalop123jorem@gmail.com", "order_id": 8576 }

Respuesta 1:

{ "category": "gateway", "description": "The card was declined", "http_code": 402, "error_code": 3001, "request_id": "2d903297-f6cd-42dc-95d6-36cea7945bb8" }

Llamada 2:

{ "method": "card", "amount": 408, "currency": "mxn", "source_id": "kqlwgxgyfscaemihbn2q", "device_session_id": "aNkTQhVbJ3MGWNGxyiNxKa6LLMXkAJtr", "description": "Charge for jalop123jorem@gmail.com", "order_id": 8577 }

Respuesta 2:

{ "category": "request", "description": "This source_id was already used", "http_code": 422, "error_code": 1003, "request_id": "784e5064-9b0c-4cfa-9889-be0c81b9b913" }

fedebalderas commented 6 years ago

@jalop123j tienes tu tienda en línea para echarle un vistazo? Ya que en realidad sobre cada petición el campo que almacena el token es generado "al vuelo".

jalop123j commented 6 years ago

Hola, si la tienda productiva es Orem.com.mx por el momento está desactivado openpay, tengo una copia de la tienda donde desactive todos los plugins, excepto woocommerce y openpay , además cambie el theme. Tengo el mismo problema aquí: http://development.orem.com.mx/categoria-producto/Agendas_Accion_2018/

Te agradecería si me ayudas a revisarlo, me urge tener el plugin funcionando.

fedebalderas commented 6 years ago

@jalop123j Basta con realizar un pequeño cambio un el archivo openpay.js (se reemplaza input:submit por button:submit), o bien podrías bajar el nuevo ZIP que esta en GitHub.

fix que corrige el borrado de un token viejo o erroneo open pay openpay woocommerce 5c27a68

Cualquier cosa me comentas.

jalop123j commented 6 years ago

Gracias @fedebalderas, descargué la versión publicada hace 6 días y solucionó el problema. Me certificaron y ya tengo acceso a las claves productivas.

!!!**Necesito de tu ayuda porque estoy teniendo problemas ya en producción.

El día de hoy recibí un pago productivo, pero hay un problema:

  1. Cliente ingresa datos de pago. Da click en procesar.
  2. La transacción es aprobada, el cargo se realiza al cliente, en logs de openpay pareciera estar todo bien.
  3. EL problema es que en lugar de ser redireccionado a la pagina de pago completado, el cliente fue redireccionado a la página de inicio (Home)
  4. En el carrito todavia aparece un 1 como si el pago no hubiera sido realizado.
  5. El cliente pica el link de la página de tienda asociado a Woocommerce y en lugar de aparecer la tienda normal con los productos, aparece la página de pago recibido con la información correcta de su pago, en este punto el carrito ya aparece el 0.

*En modo de pruebas esto no sucede. Tengo paypal integrado y he recibido pagos sin este problema. Estoy reemplazando Conekta por OPen Pay, en Conekta tampoco llegue a tener este problema.

Update:*Este problema no fue un caso aislado, realice una prueba productiva con mi tarjeta y tuve el mismo problema.

Por favor tu ayuda!!!

fedebalderas commented 6 years ago

@jalop123j a que te refieres con: "El cliente pica el link de la página de tienda asociado a Woocommerce..." De cual link estas hablando? Donde se muestra este link?

jalop123j commented 6 years ago

@fedebalderas :Normalmente despues de que el pago es aceptado el cliente es redireccionado a la pagina de pago recibido. En este caso es redirigido al home (No tengo idea porque), el cliente estaba confundido porque no recibio ninguna confirmacion de compra. En mi tienda orem.com.mx hay varios links en el menu principal, entre ellos uno llamado Tienda que redirige a la tienda de woocommerce (Esta pagina esta asociada a woocommerce en Ajustes->Productos->Pagina de compra.

Pareciera como que despues de la autorización fue exitosa, Woocommerce estuviera esperando alguna notificación para enterarse del pago y así borrar las cookies (de los productos que el cliente tenia en el carrito) pero esto no sucedió hasta que el cliente hizo click al enlace de la tienda (asociado a woocomerce) en lugar de aparecer la tienda con los productos de woocommerce, apareció el pago recibido y los productos del carrito desaparecieron.

fedebalderas commented 6 years ago

@jalop123j El plugin de Openpay hace uso de una función propia de woocommerce para el redireccionamiento a esta página de éxito del pedido, donde se pasa como parámetro la orden y nosotros nos abstraemos de definir una URL como tal a donde será enviado.


return array(
        'result' => 'success',
        'redirect' => $this->get_return_url($this->order)
);

Entonces aquí si no sabría como ayudarte porque es algo que nosotros delegamos a WooCommerce, no sé si sea un tema de configuración que tienes en tu tienda.