Cálculo de la firma

 

Debido al carácter confidencial de los datos enviados en los mensajes, se hace necesario proteger dichos datos de manera que ninguna persona externa pueda modificar los mismos y confundir a alguna de las dos partes implicadas en el sistema.

A parte de la seguridad inherente que proporciona SOAP en el envío de los mensajes, es necesario añadir una firma a los mensajes que identifique a las dos partes en la transacción. Para calcular la firma, se utiliza una clave secreta compartida entre el comercio y Banco Sabadell.

Los datos que se incluyen en la firma son una cadena con el mensaje enviado (los datos que hay entre las etiquetas <version...> </ version>) y la clave secreta compartida entre Banco Sabadell y el comercio.

Por ejemplo, dado los siguientes datos de petición:

 

<Version Ds_Version=”0.0”> 
<Message>
<Monitor>
<Ds_MerchantCode>327234688</Ds_MerchantCode>
<Ds_Terminal>1</Ds_Terminal>
<Ds_Order>91031000014</Ds_Order>
</Monitor>
</Message>
</Version>

 

Generará el siguiente XML:

 

<Messages>
<Version Ds_Version=”0.0”>
<Message>
<Monitor>
<Ds_MerchantCode>327234688</Ds_MerchantCode>
<Ds_Terminal>1</Ds_Terminal>
<Ds_Order>91031000014</Ds_Order>
</Monitor>
</Message>
</Version>
<Signature>KYMRHr7g9at+t2xTx7Mem3pW52rkCckMpd5x13TrD5I=</Signature>
<SignatureVersion>HMAC_SHA256_V1</SignatureVersion>
</Messages>

 

Obteniéndose el valor:

 

571b2d002c878ddb241fc542c7b6d46262bbb7cb

 

Para el cálculo de la firma de respuesta se utilizarán los mismos datos, al igual que en la firma de entrada.