Préserver le corps brut
Vérifiez les octets reçus avant d’analyser/re-sérialiser JSON. Même les espaces modifient le MAC. Configurez la gestion du corps brut de votre framework en conséquence.
En-têtes
Utilisez Tembuilder-Event, Tembuilder-Delivery-Id, Tembuilder-Attempt, Tembuilder-Timestamp et Tembuilder-Signature. La signature est v1= plus un hexadécimal HMAC-SHA256. Le secret de signature révélé est une URL base64 non complétée ; décodez-le d’abord en octets.
Octets signés
timestamp + "." + raw_body
Calculez HMAC-SHA256 avec le secret décodé et comparez en temps constant.
Horodatage et doublons
Appliquez une fenêtre d’acceptation du récepteur appropriée, par exemple ±5 minutes lorsque cela convient à vos horloges et à votre fonctionnement. Il s’agit d’un guide du récepteur et non d’une garantie de délai de livraison Tembuilder. Dédupliquez les ID de livraison et réconciliez l’état de l’entreprise par ID de rendu. Ne supposez pas que les notifications arrivent exactement une fois ni dans l’ordre.
Test avant production
Acceptez un test correctement signé. Rejetez une modification de corps d’un octet et un horodatage obsolète. Fournissez le même identifiant deux fois et vérifiez que les effets secondaires commerciaux ne sont pas dupliqués. Gardez les secrets et les charges utiles sensibles hors des journaux.