Vérification de la signature Webhook et Idempotence
Vérification de la signature Webhook et Idempotence
Vérifiez 6MM webhooks d’Agent avec le corps brut de la requête et traitez les tentatives, délais et événements répétés sans actions métier en duplaque.
Les Webhooks notifient un partenaire en arrière-plan des changements asynchrones d’état métier. Comme la livraison peut être retentée, chaque récepteur doit vérifier la signature avant d’analyser les données de confiance et traiter l’événement de manière idempotente.
En-têtes Webhook
Utilisez le corps brut exact de la requête reçu sur HTTP lors de la reconstruction de la valeur signée. L’analyse et la résérialise JSON d’abord peuvent modifier l’ordre des espaces blancs ou des champs et produire une signature différente.
Flux de vérification
- Lire les en-têtes d’heure et de signature.
- Capturez le corps brut de la requête non modifié.
- Construire
timestamp + nonce + rawBody. - Calculer HMAC-SHA256 avec le partenaire API secret.
- Comparer les signatures calculées et reçues à l’aide d’une comparaison en temps constant.
- Appliquer les vérifications approuvées de fraîcheur temporelle et de non-réutilisation.
- Analyser et traiter l’événement seulement après la réussite de la vérification.
Lorsqu’un vérificateur officiel de Agent SDK est disponible, utilisez-le plutôt que de maintenir un code de signature indépendant.
Idempotence d’ordre
Dossier d’idempotence recommandé
Stockez suffisamment d’informations pour reconnaître une livraison répétée et récupérer en toute sécurité :
Validez l’enregistrement de changement métier et d’idempotence dans la même transaction lorsque possible. Un événement répété devrait retourner le résultat déjà connu au lieu d’appliquer à nouveau le solde, l’ordre ou le changement utilisateur.
Règle du temps mort et de la réévaluation
Un délai d’attente HTTP ne prouve pas que la requête initiale a échoué. Interrogez l’opération en utilisant le agentOrderNooriginal, ou attendez son webhook, avant de décider si une autre action est nécessaire. Créer un nouveau numéro d’ordre commercial après chaque délai peut entraîner des mouvements de fonds en double.
Liste de contrôle de la production
- Vérifier la signature avant JSON analyse syntaxique ou traitement professionnel.
- Préserver le corps brut indépendamment de la charge utile analysée.
- Rejeter les demandes obsolètes ou rejouées conformément à la politique d’intégration approuvée.
- Rendre le traitement des événements sûr pour les livraisons répétées et hors ordre.
- Enregistrer les identifiants d’événements, les numéros de commande des partenaires, le résultat de traitement et le temps de la demande.
- Expurger les secrets et les valeurs de signature des journaux et des pièces jointes de support.