Skip to content

Instantly share code, notes, and snippets.

@joseconti
Last active March 10, 2025 17:09
Show Gist options
  • Save joseconti/f381d9fd2fcd1e975d80ebc6ab64d0d0 to your computer and use it in GitHub Desktop.
Save joseconti/f381d9fd2fcd1e975d80ebc6ab64d0d0 to your computer and use it in GitHub Desktop.
Cambiar terminal dependiendo de la moneda.
<?php
add_filter( 'redsys_modify_data_to_send', 'datos_modificados_por_moneda_en_redsys' );
/**
* Modifica los datos enviados a Redsys dependiendo de la moneda del pedido.
*
* @param array $redsys_data_send Datos que se enviarán a Redsys.
* @return array Datos modificados según la moneda de la orden.
*/
function datos_modificados_por_moneda_en_redsys( $redsys_data_send ) {
// Obtener la moneda de la orden en código numérico de Redsys
$currency = $redsys_data_send['currency'];
// Configuración de terminales según la moneda
$terminales = array(
'484' => array( // COP - Peso Colombiano
'customer' => 'XXXXXXXXXXXXX',
'DSMerchantTerminal' => 'X',
'secretsha256' => 'XXXXXXXXXXXXXXXXXXXXXXX',
),
'840' => array( // USD - Dólar Americano
'customer' => 'YYYYYYYYYYYYY',
'DSMerchantTerminal' => 'Y',
'secretsha256' => 'YYYYYYYYYYYYYYYYYYYYYYY',
),
'978' => array( // EUR - Euro
'customer' => 'ZZZZZZZZZZZZZ',
'DSMerchantTerminal' => 'Z',
'secretsha256' => 'ZZZZZZZZZZZZZZZZZZZZZZZ',
),
);
// Asignar los datos según la moneda
if ( isset( $terminales[ $currency ] ) ) {
$redsys_data_send['customer'] = $terminales[ $currency ]['customer'];
$redsys_data_send['DSMerchantTerminal'] = $terminales[ $currency ]['DSMerchantTerminal'];
$redsys_data_send['secretsha256'] = $terminales[ $currency ]['secretsha256'];
}
return $redsys_data_send;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment