fedealvz / WHMCS-MercadoPago

Gateway de Mercado Pago para WHMCS
https://marketplace.whmcs.com/product/6720-mercadopago-gateway
GNU General Public License v3.0
19 stars 16 forks source link

Conversión de moneda no funciona correctamente. #14

Open dobledosis opened 1 year ago

dobledosis commented 1 year ago

Hola, este problema ya sucedía en la versión de BayresApp, lograron solucionarlo en una actualización por un ticket de soporte donde les avisé del problema pero luego en actualizaciones posteriores volvieron a introducirlo y nunca más lo solucionaron. El problema sucede cuando el cliente tiene configurada como su moneda principal una diferente a la que se utiliza en mercado pago, en mi caso el peso argentino. Por ejemplo, si el cliente al momento de crear una cuenta lo hace con su moneda en USD, al momento de pagar en Mercado Pago Argentina le aparece el monto correcto en pesos en MercadoPago pero en WHMCS el pago ingresa como si el monto abonado en pesos fue en dólares. Por lo tanto en WHMCS ingresa de más.

                Factura: 76730
                Gateway: MercadoPago Argentina (Crédito, débito y transferencia bancaria)
                Transaccion: 54926972051
                Autorizacion: 
                Fecha: 2023-02-19T21:08:39.000-03:00
                Metodo de pago: account_money - account_money
                Moneda: ARS
                Importe: 3894
                Neto: 3534.58
                Moneda del cliente: USD
                        Importe original: 3894
                        Comisión original: 359.42

En este log del Gateway indica Moneda "ARS", moneda del cliente "USD". El cliente pagó 3894 pesos, en WHMCS ingresan 3894 dólares.

En la configuración del Payment Gateway está seleccionado para que se haga la conversión a pesos argentinos.

hidromedusa commented 1 year ago

Hola. ¿Tu moneda por defecto es pesos o dólares? En mi caso tuve el mismo problema pero mi moneda principal es USD. Tenía activada la opción de convertir a pesos desde la configuración del módulo, pero luego del pago al cliente le quedaba como saldo a favor X cantidad de dinero en USD (pagaban en pesos y el módulo no "entendía/hacía" el cambio al volver). Perdí bastante dinero con ese bug. FIJATE BIEN EN ESE DETALLE PORQUE TE PUEDE PASAR. Contacté a Bayresapp y lo que solucionaron fue únicamente que no quedara como saldo a favor del cliente esa diferencia, pero nunca solucionaron el tema de la diferencia de monedas. Hasta el día de hoy mi balance en WHMCS me da negativo porque piensa que pago miles de dólares en comisiones cuando en realidad son pesos. Espero haberme explicado. ¡Saludos!

dobledosis commented 1 year ago

Si, mi moneda principal es el USD. Cada vez que veo un cliente que elije ver los precios en USD y paga por Mercado Pago en pesos borro manualmente el pago y lo vuelvo a agregar.

gonzad26 commented 1 year ago

Tienen bien configurados los rates de las monedas siendo el rate del USD 1 (por ser la moneda patrón del sistema) y el ARS la tasa de cambio al dólar (200-300)?

Se me ocurre que se puede modificar el llamado de API de "AddTransaction" para que informe el currency y el rate y WHMCS se encargue de registrar la transacción en la moneda correcta que se recibe.

O también se puede modificar para que use el cambio de la moneda ARS de lo que viene en MP en lugar de la moneda del cliente que por lo que cuentan la tienen en USD. https://github.com/fedealvz/WHMCS-MercadoPago/blob/69c8723d0edac626e18d9a2342eec6873c48f94c/gateways/MercadoPago_Lib/mercadopago_config.php#L306 y después dividir el valor que ingrese de MP por el rate de peso. Así cuando se haga "AddTransaction" ingresa el valor en dólares convertido por el rate de la moneda ARS a USD.

dobledosis commented 1 year ago

El autor de esto dice que es una remake lo más fiel posible pero parece ser que accedió al código fuente y lo publicó ya que tiene los mismos bugs. @hidromedusa un cliente me acaba de pagar de más y no se agregó como crédito a favor. Esta "solución" que te dieron al final no soluciona, sino que genera otro problema.