En esta guía, te explicaremos cómo puedes asegurarte de que la información que recibes de Treli es auténtica y no ha sido modificada por terceros utilizando el método de firma asimétrica con el algoritmo SHA256.

Paso 1: Entender la Firma Asimétrica y SHA256

Treli utiliza un método de firma asimétrica para garantizar la seguridad de la información que envía a tus URL de eventos. La firma asimétrica utiliza una clave secreta que solo tú y Treli conocen para generar un código de autenticación llamado firma HMAC. El algoritmo de hash criptográfico utilizado en este proceso es SHA256.

Paso 2. Obtén la Firma Asimetría

El encabezado Treli-Signature incluido en cada evento contiene la firma de seguridad que debes verificar.

Paso 3: Prepara la cadena signed_payload

La cadena signed_payload se crea concatenando la carga JSON (es decir, el cuerpo de la solicitud)

Paso 4: Determina la firma esperada

Calcula un HMAC con la función hash SHA256. Usa tu llave API (Como obtener tu llave API) como la clave, y la cadena signed_payload como el mensaje.

$secret = "tu_llave_api";
$headers = getallheaders();
$payload = file_get_contents("php://input");
$calculatedSignature = hash_hmac('sha256', $payload, $secret);

if ($headers['Treli-Signature'] == $calculatedSignature) {
    // La firma es válida, los datos son auténticos.
    // Procede a procesar los datos del webhook.
} else {
    // La firma no coincide, los datos pueden ser no confiables.
    // Maneja esta situación según tus necesidades.
}

Paso 5: Compara la firma

Compara la firma en el encabezado con la firma esperada.