compropago / plugin-woocommerce

WooCommerce Plugin for the ComproPago payment methods
http://demo.compropago.com/list/plugins/woocommerce.php
Apache License 2.0
8 stars 5 forks source link

Problema con moneda en el checkout #62

Closed liberaiphoneimei closed 6 years ago

liberaiphoneimei commented 6 years ago

Comento un problema que tengo, por si tiene solución o tiene posibilidad de incluirse algún tipo de opción.

En el caso de nuestra store, es una tienda que ofrece pagos en varias monedas con un plugin selector de moneda y detección automática de país. El caso es que cuando un cliente entra a hacer el pago en Pesos mexicanos, toma bien la cantidad pero asume que el pago es en USD y aplica el tipo de cambio, por lo que un pago originalmente de 89 pesos lo multiplica por 18 o lo que toque en ese momento.

Sospecho que el problema puede venir porque los plugins de moneda y detección que usamos no estén pasando el código "MXN" estandarizado sino otro como "Pesos MX" o "MX$", o similares, y el plugin de ComproPago al no detectar MXN cree que son USD. He de decir que con el resto de pasarelas que usamos (Stripe, Redsys, Transferencias, etc) no nos sucede este problema y si detecta correctamente la moneda.

La solución temporal que he ejecutado es extenderme una modificación que obliga a que el parámetro de moneda sea 'MXN'. El objeto que modifica (en service.php dentro de CompropagoSDK) es $neworder->currency.

No se si sería posible por ejemplo implementar una función (Ej: Forzar Pesos en el checkout) que me permita asegurarme que siempre sea "MXN" ese atributo del objeto (no permito que salga ComproPago si el pago es en otra moneda que no sea pesos), o quizás se os ocurra alguna solución mejor.

Este problema lo tengo desde 4.2.0.1 y se mantiene en 4.3.0.0 y 4.3.0.1

Gracias!

dabodude commented 6 years ago

En mi caso lo resuelvo con un plugin que cambia la moneda pero mantiene el cobro en pesos.

https://woocommerce.com/products/currency-converter-widget/

De cualquier modo, el metodo de compropago lo mantengo disponible unicamente para clientes en Mexico por lo que es inusual que usen una moneda distinta al peso mx. El El vie, 30 de marzo de 2018 a la(s) 10:29, vicius23 < notifications@github.com> escribió:

Comento un problema que tengo, por si tiene solución o tiene posibilidad de incluirse algún tipo de opción.

En el caso de nuestra store, es una tienda que ofrece pagos en varias monedas con un plugin selector de moneda y detección automática de país. El caso es que cuando un cliente entra a hacer el pago en Pesos mexicanos, toma bien la cantidad pero asume que el pago es en USD y aplica el tipo de cambio, por lo que un pago originalmente de 89 pesos lo multiplica por 18 o lo que toque en ese momento.

Sospecho que el problema puede venir porque los plugins de moneda y detección que usamos no estén pasando el código "MXN" estandarizado sino otro como "Pesos MX" o "MX$", o similares, y el plugin de ComproPago al no detectar MXN cree que son USD. He de decir que con el resto de pasarelas que usamos (Stripe, Redsys, Transferencias, etc) no nos sucede este problema y si detecta correctamente la moneda.

La solución temporal que he ejecutado es extenderme una modificación que obliga a que el parámetro de moneda sea 'MXN'. El objeto que modifica (en service.php dentro de CompropagoSDK) es $neworder->currency.

No se si sería posible por ejemplo implementar una función (Ej: Forzar Pesos en el checkout) que me permita asegurarme que siempre sea "MXN" ese atributo del objeto (no permito que salga ComproPago si el pago es en otra moneda que no sea pesos), o quizás se os ocurra alguna solución mejor.

Este problema lo tengo desde 4.2.0.1 y se mantiene en 4.3.0.0 y 4.3.0.1

Gracias!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/compropago/plugin-woocommerce/issues/62, or mute the thread https://github.com/notifications/unsubscribe-auth/AB5O2WWCOp8enw0Zh5La5YyI8bBU_Z1Eks5tjl1RgaJpZM4TB4H5 .

liberaiphoneimei commented 6 years ago

Gracias por la sugerencia. Yo también saco ComproPago solo en México, quizás antes no me expliqué correctamente. El problema que me surge es que cuando un cliente entra a pagar desde México y en Pesos, a la hora de generar la orden de ComproPago (con las demás pasarelas no me sucede) todo parece ir bien excepto que cree que la moneda son dólares por algún motivo, y me lo multiplica por 18. Como indicaba, forzando "MXN" a mano, el pago se crea bien.

Anoto el plugin y lo investigo!

danteay commented 6 years ago

@vicius23 gracias por notificarnos de este problema, nos es de mucha ayuda sus comentarios y reportes para poder mejorar nuestro servicio.

Como dato adicional, ¿Podrías indicarme el nombre del plugin que usas para manejar el currency de tu tienda?

liberaiphoneimei commented 6 years ago

@danteay El plugin es "Currency Switcher for WooCommerce" de Algoritmika.

Cualquier ayuda que pueda prestar es un placer hacerlo, por supuesto. Adjunto también el final de los datos intercambiados en un pedido en el que sucedía lo que indicaba.

"final_amount": 1627.098,
  "origin_amount": 89,
  "final_currency": "MXN",
  "origin_currency": "USD"
}

}, "customer": { "customer_name": "Test ", "customer_email": "*@.com", "customer_phone": "" }, "api_version": "1.1" }

Como se puede ver, toma como moneda de origen USD. En cuanto lo fuerzo a "MXN", el problema obviamente desaparece.

Gracias.

liberaiphoneimei commented 6 years ago

Se me olvidó mencionar que en la parte de Pedidos de WooCommerce, el pedido si sale en la cantidad correcta en pesos, en el caso del ejemplo 89. Es en la creación del recibo en Compropago (a posteriori de generar el pedido en Woo) donde parece que cree que son USD y lo "convierte".

danteay commented 6 years ago

Problema resulto en la version 4.4.0.0