Skip to content

Instantly share code, notes, and snippets.

@joseconti
Last active June 27, 2021 16:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joseconti/029ac40446f1f3303c7305c5c10ed2fc to your computer and use it in GitHub Desktop.
Save joseconti/029ac40446f1f3303c7305c5c10ed2fc to your computer and use it in GitHub Desktop.
<?php
add_filter( 'redsys_modify_data_to_send', 'datos_modificados_pasarela_pago_en_redsys' ); // Filtro para «Redsys redirección (por Jose Conti)»
add_filter( 'bizum_modify_data_to_send', 'datos_modificados_pasarela_pago_en_redsys' ); // Filtro para «Bizum (por Jose Conti)»
function datos_modificados_pasarela_pago_en_redsys( $redsys_data_send ) {
$order_total_sign = $redsys_data_send['order_total_sign']; // Precio total
$terminal = $redsys_data_send['DSMerchantTerminal']; // Número de terminal
$currency = $redsys_data_send['currency']; // Moneda (código internacional numérico)
$transaction_id2 = $redsys_data_send['transaction_id2']; // Número de pedido
$transaction_type = $redsys_data_send['transaction_type']; // Tipo de transacción (código numérico Redsys)
$final_notify_url = $redsys_data_send['final_notify_url']; // URL de notificación de Redsys
$returnfromredsys = $redsys_data_send['returnfromredsys']; // Dónde debe volver el usaurio a la tienda desde Redsys
$gatewaylanguage = $redsys_data_send['gatewaylanguage']; // Idioma de Redsys
$secretsha256 = $redsys_data_send['secretsha256']; // SHA256
$customer = $redsys_data_send['customer']; // FUC
$url_ok = $redsys_data_send['url_ok']; // Dirección dónde se enviará al cliente si la transacción en correcta (Thankyou Page)
$product_description = $redsys_data_send['product_description']; // Descripción del producto
$merchant_name = $redsys_data_send['merchant_name']; // Nombre del comercio
if ( $lo_que_sea ) {
// Aquí la magia y donde modificaremos los datos
}
$redsys_data_send['order_total_sign'] = $order_total_sign;
$redsys_data_send['DSMerchantTerminal'] = $terminal;
$redsys_data_send['currency'] = $currency;
$redsys_data_send['transaction_id2'] = $transaction_id2;
$redsys_data_send['transaction_type'] = $transaction_type;
$redsys_data_send['final_notify_url'] = $final_notify_url;
$redsys_data_send['returnfromredsys'] = $returnfromredsys;
$redsys_data_send['gatewaylanguage'] = $gatewaylanguage;
$redsys_data_send['secretsha256'] = $secretsha256;
$redsys_data_send['customer'] = $customer;
$redsys_data_send['url_ok'] = $url_ok;
$redsys_data_send['product_description'] = $product_description;
$redsys_data_send['merchant_name'] = $merchant_name;
return $redsys_data_send;
}
@daviserraalonso
Copy link

Hello.

I need add other TPV to my e-commerce in woocommerce and i show your post and yout code. How i can integrate it in my e-commerce¿?? this code should be write in functions.php or what should i do?

Thanks

@joseconti
Copy link
Author

Hi @daviserraalonso

First, you need this plugin https://woocommerce.com/es-es/products/redsys-gateway/
And second, the code has to be added to the theme's functions.php file or in a custom plugin.

Regards
José Conti

@daniel89fg
Copy link

Hola. Necesito tener dos tpv diferentes configurados según la categoria de productos. Habia pensado en tener un tpv (cajamar) configurado por defecto, y el otro editarlo con el filtro que propones aquí para usarlo en (santander). Mi pregunta es.... ¿el tema de las devoluciones?, ¿si tengo que hacer una devolución de un pedido, la información del tpv se queda guardada en cada pedido y hara la devolución en el tpv correspondiente...? ¿o en este caso cogerá los datos generales por defecto, en este caso de cajamar?. Gracias.

@joseconti
Copy link
Author

Hola @daniel89fg,

Hay un bug por el que no se captura el FUC correcto, pero estoy arreglándolo ahora, arreglado este bug, sí, devolverá en el terminal correcto.

Saludos

@daniel89fg
Copy link

Genial, eso se publicará en alguna actualización futura o es parte del código descrito en este página?

@joseconti
Copy link
Author

El código de esta página es correcto. El «problema» es en el endpoint y la llamada para las devoluciones.

El arreglo de lo anterior saldrá en una versión futura, seguramente la v15.2 @daniel89fg

@daniel89fg
Copy link

Genial, pues quedo a la espera de ese arreglo :) ya tengo bien mis dos tpvs funcionando. Pero sin ese arreglo es un peligro ponerlo en producción. Gracias. Si puede cuando se lance la actualización, ¿podría comunicarlo por aquí?. Un saludo.

@joseconti
Copy link
Author

Si conectas la tienda a WooCommerce.com serás avisado y podrás actualizar de forma automática. O puedes apuntarte al grupo de Telegram https://t.me/wooredsys @daniel89fg

@daniel89fg
Copy link

ok, gracias.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment