A continuación se presentan los pasos que debe seguir un comercio para la utilización de la librería JAVA proporcionada por Banco Sabadell:
1. Importar la librería RedsysAPI y Newronsoft.Json en su proyecto.
2. Capturar los parámetros de la notificación on-line:
//Creación del objeto RedsysAPI r = new RedsysAPI(); // Obtener la variable Ds_SignatureVersion vía POST if (Request.Form[“Ds_SignatureVersion”] != null) { version = Request.Form[“Ds_SignatureVersion”]; } // Obtener la variable Ds_MerchantParameters vía POST if (Request.Form[“Ds_MerchantParameters”] != null) { parms = Request.Form[“Ds_MerchantParameters”]; } // Obtener la variable Ds_Signature vía POST if (Request.Form[“Ds_Signature”] != null) { firmaRecibida = Request.Form[“Ds_Signature”]; }
3. Validar el parámetro Ds_Signature. Para llevar a cabo la validación de este parámetro se debe calcular la firma y compararla con el parámetro Ds_Signature capturado. Para ello se debe llamar a la función de la librería “createMerchantSignatureNotif()” con la clave de comercio facilitada y el parámetro Ds_MerchantParameters capturado, tal y como se muestra a continuación:
string clave = “sq7HjrUOBfKmC576ILgskD5srU870gJ7”; string notif = r.createMerchantSignatureNotif(clave, data);
Una vez hecho esto, ya se puede validar si el valor de la firma enviada coincide con el valor de la firma calculada, tal y como se muestra a continuación:
if (notif.Equals(firmaRecibida) && notif != “”) { //FIRMA OK. Realizar tareas de servidor } else { //FIRMA KO. Error, firma inválida. }
Una vez se ha realizado la llamada a la función “createMerchantSignatureNotif()”, se puede obtener el valor de cualquier parámetro que sea susceptible de incluirse en la notificación on-line, tal y como se muestra en el apartado Respuesta online. Para llevar a cabo la obtención del valor de un parámetro se debe llamar a la función “getParameter()” de la librería con el nombre de parámetro, tal y como se muestra a continuación para obtener el código de respuesta:
codigoRespuesta = r.GetParameter(“Ds_Response”);