Salta al contingut
Log in

Webhooks

Per garantir que el webhook és autèntic i enviat per B2Brouter, verifiqueu la signatura inclosa a la capçalera X-B2Brouter-Signature. A continuació s’explica com podeu verificar la signatura al vostre servidor:

  1. Extreure la informació de la capçalera: La capçalera X-B2Brouter-Signature conté dos components:

    • t: El timestamp UNIX quan es va signar el payload.
    • s: La signatura HMAC-SHA256. Exemple de capçalera:
    t=1732530076,s=9f117925ea533a2ea74b19699e03ab5de5664b4ff021d3d01eaff8868ed29e4d
  2. Recrear el Payload: Combineu el timestamp rebut (t) i el payload JSON en brut (data) usant un punt (.):

    payload = "#{timestamp}.#{data}"
  3. Calcular la signatura HMAC-SHA256: Useu la signature_key compartida i el payload per calcular la signatura:

    computed_signature = HMAC-SHA256(signature_key, payload)
  4. Comparar les signatures: Compareu la computed_signature amb el valor s de la capçalera. Si coincideixen, el webhook és vàlid.

  1. PHP:
$headers = getallheaders();
$header = $headers['X-B2Brouter-Signature'];
preg_match('/t=([^,]+),s=(.+)/', $header, $matches);
$timestamp = $matches[1];
$signatureHash = $matches[2];
$recalculatedHash = hash_hmac(
'sha256',
$timestamp . '.' . file_get_contents('php://input'),
'your_webhook_secret'
);
$isValid = hash_equals($signatureHash, $recalculatedHash);