Un code de statut HTTP compris entre 400 et 499 ou entre 500 et 599 provient de votre serveur et indique que votre système a reçu la requête mais n'a pas pu la traiter. Essayez de procéder comme suit :
Dans le Dashboard, consultez la réponse de votre serveur pour obtenir des informations supplémentaires : il se peut qu'il n'y ait pas d'informations supplémentaires dans la réponse; cela dépend de la configuration de votre serveur et de la façon dont votre code est conçu pour répondre aux erreurs.
Vérifiez que les journaux de votre serveur ne contiennent pas d'erreurs ou d'avertissements : ces erreurs vous indiquent la source de la réponse d'erreur, qui peut être le code de gestion de votre webhook ou un problème de configuration sur votre serveur
Vérifiez que l'événement reçu possède une version de l'API que votre code est en mesure de gérer : les versions de l'API définissent la structure de l'objet contenu dans un événement; si la version de l'API ne correspond pas à celle d'un événement entrant et de votre code de traitement, des erreurs inattendues peuvent survenir
Vous trouverez ci-dessous quelques erreurs courantes qui entraînent des codes d'état 4xx et 5xx, ainsi que leurs solutions.
Cette erreur ou une erreur similaire (la formulation peut varier d'une bibliothèque à l'autre) signifie que le processus de vérification de la signature de webhook a échoué. Cette erreur est généralement liée à l'une des causes suivantes :
La mauvaise clé secrète de signature de webhook (whsec_
) a été utilisée pendant le processus de vérification de la signature
Assurez-vous d'utiliser la clé secrète de signature de webhook correspondant au point de terminaison de webhook qui transmet l'événement, que vous pouvez trouver dans le Dashboard après avoir sélectionné un point de terminaison de webhook spécifique
Si vous utilisez l'interface de ligne de commande Stripe, elle générera et affichera une clé secrète de signature de webhook que vous pourrez utiliser lors de l'exécution de la commande stripe listen
Le corps de la requête a été modifié avant la vérification de la signature de webhook
Le processus de vérification de la signature de webhook nécessite le corps brut et non modifié de la requête entrante de Stripe pour pouvoir fonctionner
Si votre code analyse, formate ou modifie le corps de la requête avant la vérification de la signature, vous obtiendrez une erreur comme celle-ci
Ajustez ou supprimez le code, y compris l'intergiciel, qui peut modifier le corps brut de la requête entrante, puis réessayez
Remarque : les intergiciels Node.js modifient souvent le corps des requêtes entrantes ; essayez d'extraire le corps brut avant que d'autres intergiciels ne s'exécutent
Cette erreur ou une erreur similaire (la formulation peut varier d'une bibliothèque à l'autre) signifie que l'événement reçu est trop ancien pour être vérifié. Les signatures de webhook comportent une composante temporelle et doivent être vérifiées peu de temps après leur réception.
Essayez de procéder comme suit :
Vérifiez que l'heure et la date indiquées sur votre serveur sont correctes
Veillez à vérifier rapidement les signatures des webhooks entrants dès que les événements sont reçus
Ces erreurs sont généralement dues à une exception générée par le code, à une erreur d'analyse ou à une modification importante.
La plupart du temps, ce type d'erreur est causé par une modification du serveur ou de l'infrastructure responsable de l'acceptation et du traitement des webhooks. Un code nouveau ou modifié, une mise à jour du serveur ou un changement de configuration peuvent entraîner un nouveau mode de défaillance ou une incompatibilité.
Lorsque vous rencontrez cette erreur, vérifiez les journaux d'erreurs de votre serveur pour plus d'informations. L'emplacement des journaux d'erreurs variant d'un serveur à l'autre en fonction de la configuration, du système d'exploitation, du serveur Web, des langages de programmation utilisés et d'autres facteurs, nous ne pouvons pas fournir d'instructions spécifiques. Nous vous recommandons de vérifier les journaux et la configuration du journal d'erreur pour tous les éléments suivants que vous pouvez utiliser pour recevoir des webhooks :
Votre langage de programmation (Ruby, Python, PHP, Java, Node.js, Go, .NET, etc.)
Votre serveur Web (Nginx, Apache, Microsoft IIS, etc.)
Votre fournisseur de services infonuagiques ou de serveurs (Amazon Web Services, Google Cloud Computing, Cloudflare, etc.)