Calcular la firma

Para poder calcular la firma debe disponer:
  • de los campos cuyos nombres comienzan con vads_.
  • del tipo de algoritmo elegido en la configuración de la tienda.
  • de la clave

El valor de la clave está disponible en el Back Office Vendedor en el menú Configuración > Tienda > pestaña Clave(s).

El tipo de algoritmo se define en su Back Office Vendedor en el menú Configuración > Tienda > pestaña Configuración.

Para máxima seguridad, se recomienda utilizar el algoritmo HMAC-SHA-256 además de una clave alfanumérica.

El algoritmo SHA-1 está en desuso, pero se mantiene por razones de compatibilidad.

Para calcular la firma:

  1. Ordene los campos cuyo nombre comienza con vads_ en orden alfabético.
  2. Asegúrese de que todos los campos estén codificados en UTF-8.
  3. Concatene los valores de estos campos separándolos con el carácter "+".
  4. Concatene el resultado con la clave de prueba o de producción separándolos con el carácter "+".
  5. De acuerdo con el algoritmo de firma definido en la configuración de su tienda:
    1. si su tienda está configurada para usar "SHA-1", aplique la función de hash SHA-1 en el string obtenido en el paso anterior. Depreciado.
    2. si su tienda está configurada para usar "HMAC-SHA-256", calcule y codifique en formato Base64 la firma del mensaje usando el algoritmo HMAC-SHA-256 con los siguientes parámetros:
      • la función hash SHA-256,
      • la clave de prueba o de producción (según el valor del campo vads_ctx_mode) como clave compartida,
      • el resultado del paso anterior como mensaje a autenticar.
  6. Guarde el resultado del paso anterior en el campo signature.
Ejemplo de parámetros enviados a la plataforma de pago:
<form method="POST" action="https://secure.payzen.eu/vads-payment/">
<input type="hidden" name="vads_action_mode" value="INTERACTIVE" />
<input type="hidden" name="vads_amount" value="5124" />
<input type="hidden" name="vads_ctx_mode" value="TEST" />
<input type="hidden" name="vads_currency" value="978" />					
<input type="hidden" name="vads_page_action" value="PAYMENT" />
<input type="hidden" name="vads_payment_config" value="SINGLE" />
<input type="hidden" name="vads_site_id" value="12345678" />
<input type="hidden" name="vads_trans_date" value="20170129130025" />
<input type="hidden" name="vads_trans_id" value="123456" />
<input type="hidden" name="vads_version" value="V2" />
<input type="hidden" name="signature" value="ycA5Do5tNvsnKdc/eP1bj2xa19z9q3iWPy9/rpesfS0="/>					
<input type="submit" name="pagar" value="Pagar"/>
</form>

Este ejemplo de formulario se desglosa de la siguiente manera:

  1. Se organizan en orden alfabética los campos cuyo nombre comienza con vads_ :
    • vads_action_mode
    • vads_amount
    • vads_ctx_mode
    • vads_currency
    • vads_page_action
    • vads_payment_config
    • vads_site_id
    • vads_trans_date
    • vads_trans_id
    • vads_version
  2. Se concatena el valor de estos campos con el carácter "+" :
    INTERACTIVE+5124+TEST+978+PAYMENT+SINGLE+12345678+20170129130025+123456+V2
  3. Se agrega el valor de la clave de prueba al final del string, separado por el carácter "+". En este ejemplo, la clave de prueba es 1122334455667788
    INTERACTIVE+5124+TEST+978+PAYMENT+SINGLE+12345678+20170129130025+123456+V2+1122334455667788
  4. Si usa el algoritmo SHA-1, aplíquelo al string resultante.

    El resultado a transmitir en el campo firma es: 59c96b34c74b9375c332b0b6a32e6deeec87de2b

  5. Si su tienda está configurada para usar "HMAC-SHA-256", calcule y codifique en formato Base64 la firma del mensaje usando el algoritmo HMAC-SHA-256 con los siguientes parámetros:
    • la función hash SHA-256,
    • la clave de prueba o de producción (según el valor del campo vads_ctx_mode) como clave compartida,
    • el resultado del paso anterior como mensaje a autenticar.

    El resultado a transmitir en el campo firma es:

    ycA5Do5tNvsnKdc/eP1bj2xa19z9q3iWPy9/rpesfS0=