Hola! necesito un poco de ayuda. Tengo instalado Woocommerce (como en el resto de páginas
que no me ocurre), el caso es que hemos instalado CIBERPAC sin problemas, todo funciona bien cuando empleamos los datos de tarjeta de prueba, pero (adjunto imagen) el precio del producto no coincide con el precio en la plataforma de pago. Por ejemplo si el precio en carrito y en finalizar compra es 105, en el botón de pago aparece 1,05 a pagar (adjunto capturas).
Se está enviando DS_MERCHANT_AMOUNT:105, lo que corresponde a 1,05.
Para el importe que nos comentas de 105€, el valor del parámetro debería ser 10500, Redsys registra como decimales los dos últimos números del valor del parámetro, por lo que debes revisar cómo se está enviando esta información. ADJUNTO IMAGEN QUE ME MANDAN ELLOS
Contenido solo visible a usuarios registrados
Hola Aitz,
Nos comentas sobre el plugin de ciberpac, pero no vemos ese plugin activo en tu sitio, que plugin es el que utilizas para gestionar los pagos? vemos que tienes el plugin de Redsys, es ese el que utilizas?
Puedes verificar con este otro plugin si te sucede lo mismo;
https://www.webempresa.com/blog/pasarela-de-pago-redsys-para-woocommerce.html
Esta guía te explica como instalarlo y configurarlo.
Un saludo 🖐️
@argenis Hola, si!! perdón. Ese es el que uso siempre. En principio no veo ningún lugar donde configurar esto que me comentan. Tengo ese plugin instalado en el otra web sin errores. Pero no se como hacer para que el precio se envie de forma correcta
Hola Aitz
El problema suele venir si tienes los precios configurados sin decimales, ya que al realizar el pago en el servidor de redsys , este le añade la coma del decimal al importe que recibe.
Es decir si tienes configurado el producto con 100€ (sin decimales), al realizar el pago redsys cobrará este pedido por un importe de 1,00€ ya que en la nueva actualización no es capaz de detectar la configuración sin decimales de woocommerce que en la versión anterior si era capaza de detectarla.
.- Accede a WooCommerce -> Ajustes
.- En la pestaña " General " la opción " Número de decimales " añade dos decimales.
Guarda los cambios y lo revisas.
Un Saludo
@pepesoler Ya he puesto dos decimales. El problema es que en productos redondos queda muy feo el ver 105.00 en el precio de producto. Si le pongo 2 decimales Redsys procesa bien pero si los quitas lo hace mal (tal como indico). La cuestión es que quiero mostrar los productos sin decimales. En www.nutriatlon.com (que es mía también aqui en mi hosting) el mismo plugin no reporta este error, indicando 2 decimales, tal como me indicas. ¿Cual es el motivo?Alguna posible solución???
Gracias!!!
Hola Aitz,
Actualmente si ingreso en tu sitio web Contenido solo visible a usuarios registrados veo que tiene decimales añadidos, lo que quieres es redondear los precios de los productos como tal?
Un Saludo
@karen Hola!. No!. El problema es entrename.es. Tengo instalado y configurado en los dos sitios todo igual que en nutriatlon.com (que yo sepa). En entrename, motivo por el que escribo si pongo 0 decimales redsys no aplica bien el precio. Si pongo 2 decimales si lo aplica pero es muy feo ver 105.00 en los precios de un producto. Lo que quiero es que si el producto vale 105€ pues redsys cobre 105€ y no 1,05€ (como en las capturas)
Hola Aitz,
Estoy verificando ambas web, pero no veo nada más allá sobre los decimales que ha comentado Pepe anteriormente, la diferencia que veo entre una y otra es que en Contenido solo visible a usuarios registrados a PHP 8.2 y verificar como va todo luego → https://guias.webempresa.com/preguntas-frecuentes/cambiar-la-version-php/
Verifícalo y nos comentas como va todo
Un Saludo
@karen vamos a probar, la cuestión es que en esta misma web (entrename) pusimos esa versión porque elementor pro no me dejaba personalizar el chekout. Voy a probar ya que lo tengo configurado a ver si arregla el problema de REDSYS
Acabao de cambiar la versión PHP, lo primero es que desconfigura el chekout. No arreglo el problema de REdsys. He tenido que volver a la 7,4 PHP para poder editar el chekout. Lo cierto es que no se porque en esta web ocurre. En ambas esta todo igual..
Hola Aitz
El problema de Redsys con los decimales de wooCommerce es un problema conocido que puede surgir cuando se realiza una transacción a través de Redsys y el formato de los decimales no coincide con el esperado por la pasarela.
Vamos a ver si podemos formatear los precios de Woocommerce para que no muestre los decimales.
.- En los ajustes de WooCommerce deja los dos decimales añadidos.
.- Añade lo siguiente en el archivo functions.php o si utilizas algún plugin paar añadir código como puede ser Code Snippets:
add_filter( 'formatted_woocommerce_price', 'we_remove_zero_decimals', 10, 5 );
function we_remove_zero_decimals( $formatted_price, $price, $decimal_places, $decimal_separator, $thousand_separator ) {
if ( $price - intval( $price ) == 0 ) {
return $unit = number_format( intval( $price ), 0, $decimal_separator, $thousand_separator );
}
else {
return $formatted_price;
}
}
Revisa si con eso se soluciona y muestra los precios sin decimales.
Un saludo
@pepesoler gracias, nunca he tocado el codigo. Instalo el plugin que me comentas, pruebo y os comento
Hola Aitz
Ok, dejo el hilo abierto por si necesitas retomarlo.
Un Saludo
Buenas!, hice lo que me indicaba @pepesoler y en principio correcto. En productos y carrito desaparecen los decimales. Solo aparecen en el boton de pago de redsys, pero esto es tolerable y en principio lo dejaremos tal cual. Muchas gracias
Hola Aitz
En la plataforma de Redsys poco podemos hacer, en WordPress si que podemos realizar acciones pero en Redsys ya no depende de nosotros.
Me alegra que lo solucionaras.
cualquier consulta que tengas no dudes en comunicarlo.
Un Saludo