Skip to main content
Une URL de webhook est publique. N’importe qui connaissant l’adresse peut lui envoyer une requête qui ressemble à s’y méprendre à un vrai événement Mercy Pay. La signature est ce qui vous permet de faire la différence : vérifiez-la systématiquement avant de traiter quoi que ce soit.

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 dans X-MercyPay-Signature. Pour vérifier :
  1. Lisez le corps tel qu’il est reçu, en octets, sans le parser.
  2. Calculez le HMAC-SHA256 avec votre secret.
  3. 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 status de 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.