Contexte
Dès lors qu’un webhook est activé, dès qu’un des événements associés se produira, alors ProAbono émettra une requête (POST HTTP) sur l’URL spécifiée.
Afin de sécuriser les échanges et éviter qu’une personne usurpe l’identité de ProAbono, il est fortement conseillé d’utiliser notre système de vérification par le calcul d’une signature numérique.
Procédure
1/ Récupérez votre clé business
Depuis le backoffice de ProAbono
- Cliquez sur « Intégration » depuis le menu de gauche.
- Cliquez sur l’onglet “Webhooks”.
- Puis sur “sécuriser mes webhooks”.
- Choisissez le Sample correspondant à votre langage de développement.
- Copiez la “secret-key” ou directement le bout de code fourni.
2/ Récupérez les clés retournées par le Webhook
Depuis la requête HTTP POST envoyée par ProAbono, récupérer les paramètres suivant fournis dans l’entête :
- x-proabono-key (Cette clé est unique à chaque webhook)
- x-proabono-signature (résultat attendu après calcul)
3/ Lancez la vérification
La méthode de vérification est la suivante :
- Concaténez x-proabono-key et secret-key
- Hashez le tout avec algorithme de hachage SHA-256
- Encodez le résultat en base64.
- Comparer le résultat à la clé publique x-proabono-signature.
Si les deux valeurs sont identiques, alors, vous êtes sûr que la notification provient de ProAbono.
Exemple de code en PHP:
<?php function isValidWebhook ($keyRequest, $keyBusiness, $keySignature) { $concatKey = $keyRequest.$keyBusiness; $calculatedHash = base64_encode(hash('sha256', $concatKey, true)); return ($keySignature == $calculatedHash); }
avec $keyRequest étant égal à x-proabono-key
avec $keyBusiness étant égal à secret-key
avec $keySignature étant égal à x-proabono-signature