• Resolved edcanu

    (@edcanu)


    Hola; José:

    Estoy intentando a?adir información en DS_MERCHANT_PRODUCTDESCRIPTION para que se pueda consultar en el lado de RedSyS.

    Utilizo el filtro woocommerce_redsys_args

    Puedo ver correctamente el campo después de base64_decode() y json_decode() si lo modifico me da error(Error técnico SIS0042) en el lado de RedSys, si lo vuelvo a a pasar a json sin modificar no da error.

    /*Prueba modificar descripción pedido Redsys*/
    add_filter( 'woocommerce_redsys_args','prueba_redsys_args',1,2);
    function prueba_redsys_args($redsys_args){

    $parameters=base64_decode($redsys_args['Ds_MerchantParameters']);
    $parameters_arr=json_decode($parameters,true);
    $text_pru=$parameters_arr['DS_MERCHANT_PRODUCTDESCRIPTION'];
    $text_pru.="1";//Genera el problema

    $parameters_arr['DS_MERCHANT_PRODUCTDESCRIPTION']=$text_pru;
    $parameters=wp_json_encode($parameters_arr);
    $redsys_args['Ds_MerchantParameters']=base64_encode($parameters);

    return $redsys_args;
    }

    Este es el código que utilizo, me gustaría poder pasar el sku de los productos que contiene el pedido. No sé si hay otro campo donde se pueda hacer.

    Gracias por el trabajo y la ayuda.

    Un saludo,

    Eduardo

Viewing 6 replies - 1 through 6 (of 6 total)
  • Plugin Author Jose Conti

    (@jconti)

    Hola @edcanu,

    El plugin premium tiene un filtro específico para poner la descripción que se quiera, pero el Lite no.

    El problema del filtro que utilizas, es que ya no son los parámetros encriptados que se iban a enviar a Redsys y al modificarlo están enviando los parametros nuevos que ya no corresponde a la firma.

    No lo he probado nunca, pero piensa que los parámetros que debes pasar son estos:

    $redsys_args = array(
    'Ds_SignatureVersion' => $version,
    'Ds_MerchantParameters' => $params,
    'Ds_Signature' => $signature,
    );

    Y tu estás pasando como mínimo una firma que ya no es la correcta por los datos cambiados. Deberías como mínimo recalcular la firma.

    Deberias pasar todos los parámetros al objeto $mi_obj, y luego calcular la firma de nuevo $mi_obj->create_merchant_signature( $secretsha256 );

    Thread Starter edcanu

    (@edcanu)

    Hola, José:

    Gracias por la rápida respuesta. Por lo que me dices, en el premium se podría hacer lo que estoy intentando. Modificar la descripción y que se pueda ver la descripción modificada en la plataforma de RedSys cuando se consultan los pedidos. De ser así, voy a proponer la compra del plugin, si tengo alguna duda consultaré en el soporte de Woocommerce.

    Gracias de nuevo y un saludo,

    Eduardo

    Thread Starter edcanu

    (@edcanu)

    Hola, ?Son estos hooks que tienes en tu página?

    <?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)?

    Gracias, un saludo.

    Plugin Author Jose Conti

    (@jconti)

    Hola @edcanu,

    Aunque con este se puedes, no se modifica de forma global, solo para Redsys y Bizum redirección. No se tocan todos los otros métodos. Este es más para cuando se desea tener varios terminales por algún motivo, que hay cantidad de gente que tiene varios terminales funcionando en sus sitios.

    El filtro específico es este

    $description = apply_filters( 'redsys_product_description', $description, $order );

    Con este modificas todas las descripciones de forma global en todos los métodos de pago del plugin.

    Thread Starter edcanu

    (@edcanu)

    Hola, me sirve. Funciona perfectamente.

    Muchas gracias!!!

    Plugin Author Jose Conti

    (@jconti)

    De nada @edcanu

    Saludos

Viewing 6 replies - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.