Principe
Mercy Pay calcule un HMAC-SHA256 du corps brut de la requête, avec le secret de l’endpoint, et l’envoie en hexadécimal dansX-MercyPay-Signature.
Pour vérifier :
- Lisez le corps tel qu’il est reçu, en octets, sans le parser.
- Calculez le HMAC-SHA256 avec votre secret.
- Comparez les deux valeurs à temps constant.
Exemple en PHP
Bonnes pratiques
- Gardez le secret dans votre gestionnaire de secrets, jamais dans le code.
- Refusez tout événement dont la signature ne correspond pas.
- Ne vous fiez pas à l’ordre d’arrivée : utilisez le
statusde la ressource. - Un secret compromis ne se change pas en place : supprimez l’endpoint, recréez-en un (nouveau secret), et mettez à jour votre serveur avant de rebasculer le trafic dessus.