Sign In
Sign In
  1. Home
  2. API
  3. API de cumplimiento de datos
  4. Firma de autenticidad de la solicitud
API
37 articles
WhatsApp Push v1.03
Transferencia de agente v1.04
API de cumplimiento de datos4
Introducción
Firma de autenticidad de la solicitud
Eliminación de datos
Exportación de datos
API de JavaScript del widget4
Message Trigger v1.12
Messaging v1.14

Firma de autenticidad de la solicitud

Genera el encabezado X-Mindsay-Signature HMAC-SHA256 a partir de la marca de tiempo y el cuerpo para validar la autenticidad de la solicitud a la API.

Updated on 24 de septiembre de 2026

Laiye Chatbot comprueba la existencia y validez del encabezado HTTP X-Mindsay-Signature para validar la autenticidad de la solicitud. Para ello, Laiye Chatbot y su socio comparten una clave secreta (configurada durante la integración).

El socio de Laiye Chatbot debe generar una firma al realizar una solicitud a la API. La API de Laiye intenta generar la misma firma por su parte y comprueba que coincida con la firma proporcionada en el encabezado HTTP X-Mindsay-Signature.

Para evitar ataques de repetición, la API de Laiye también valida que X-Mindsay-Timestamp no sea demasiado antigua (tolerancia de 5 minutos).

Así es como se genera la firma:

  1. Concatena el valor del encabezado X-Mindsay-Timestamp con el cuerpo de la solicitud

  2. Calcula el hash hexadecimal de esta cadena utilizando el algoritmo estándar HMAC-SHA256 y la clave secreta compartida

Ejemplo

text
X-Mindsay-Timestamp:
1575215418

Body:
{"unique_chatter_identifier_key": "member_id", "unique_chatter_identifier_value": "123"}

Secret:
a_secure_secret

Concatenated value:
1575215418{"unique_chatter_identifier_key": "member_id", "unique_chatter_identifier_value": "123"}

Computed HMAC:
acee24dc55838d04dbd879967dffda464f843799a9e6b14c97d9a2b908de6d85

Esto se puede generar de la siguiente manera:

JavaScript
const requestData = pm.request.body.raw;
const secretKey = "your-secret-key";
const timestamp = Math.floor(Date.now() / 1000).toString();
const signature = calculateSignature(secretKey, timestamp, requestData);

pm.request.headers.add({
  key: 'X-Mindsay-Signature',
  value: signature
});
pm.request.headers.add({
    key: "X-Mindsay-Timestamp",
    value: timestamp
})

function calculateSignature(secretKey, timestamp, rawBody) {
  const CryptoJS = require('crypto-js');
  const hmac = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, secretKey);
  hmac.update(CryptoJS.enc.Utf8.parse(timestamp.toString()));
  hmac.update(CryptoJS.enc.Utf8.parse(rawBody));
  return hmac.finalize().toString(CryptoJS.enc.Hex);

Puedes copiar y pegar este fragmento en una solicitud de Postman como un script previo a la solicitud

Was this article helpful?

Made from France 💙

Categories

  • ANALÍTICA
  • CONSTRUIR
  • LOUIS AI
  • INTEGRAR

🔗 Useful Links

  • Sign In
  • Website
  • Terms & Conditions

© 2026

MindsayPowered by Mindsay

Search the help center…

Search help center articles