En HTTP-statuskod i intervallet 400–499 eller 500–599 kommer från din server och indikerar att ditt system tog emot förfrågan men inte kunde behandla den. Försök med följande:
Titta på svaret från servern i Dashboard för ytterligare information: Det kanske inte finns någon ytterligare information i svaret – det beror på hur din server är konfigurerad och hur din kod är utformad för att svara på fel
Kontrollera om det finns fel eller varningar i serverns loggar: Dessa fel bör peka ut källan till felsvaret, vilket kan vara din webhook-hanteringskod eller ett konfigurationsproblem på din server
Bekräfta att den mottagna händelsen har en API-version som din kod kan hantera: API-versioner definierar strukturen för det objekt som ingår i en händelse. Om en API-version inte stämmer överens med en inkommande händelse och din behandlingskod kan det leda till oväntade fel
Några vanliga fel som orsakar 4xx- och 5xx-statuskoder och deras lösningar beskrivs nedan.
Detta eller ett liknande fel (formuleringen kan variera från ett bibliotek till ett annat) innebär att verifieringen av webhook-signaturen misslyckades. Felet orsakas vanligtvis av något av följande:
Fel signeringshemlighet för webhook (whsec_
) användes under signaturverifieringen
Se till att du använder signeringshemligheten för webhook som matchar den Webhook-slutpunkt som levererar händelsen, som du kan hitta i Dashboard efter att ha valt en specifik Webhook-slutpunkt
Om du använder Stripe CLI genereras och visas en signeringshemlighet för webhook som du kan använda när du kör kommandot stripe listen
Förfrågans data ändrades innan signaturverifieringen för webhook ägde rum
För att signaturverifieringen för webhook ska fungera krävs ursprungliga, oförändrade data för den inkommande förfrågan från Stripe
Om din kod analyserar, formaterar eller på annat sätt ändrar data för förfrågan innan signaturverifieringen kommer du att se ett sådant fel
Justera eller ta bort kod, inklusive mellanprogram, som kan ändra ursprunglig data för den inkommande förfrågan och försök igen
Obs! Mellanprogrammet Node.js ändrar ofta data för inkommande förfrågan; försök att extrahera ursprunglig data innan något annat mellanprogram körs
Detta eller ett liknande fel (formuleringen kan variera från ett bibliotek till ett annat) innebär att händelsen som togs emot är för gammal för att kunna verifieras. Webhook-signaturer har en tidskomponent och måste verifieras kort efter mottagandet.
Försök med följande:
Bekräfta att tid och datum på servern är korrekt inställda
Se till att du verifierar inkommande webhook-signaturer så snart händelser tas emot, utan fördröjning
Dessa fel orsakas vanligtvis av att koden uppvisar ett undantag, ett tolkningsfel eller någon form av förändringar som kan orsaka problem.
Oftast orsakas den här typen av fel av någon form av förändring på den server eller infrastruktur som ansvarar för att ta emot och behandla webhooks. Ny eller ändrad kod, en serveruppdatering eller en konfigurationsändring kan ge upphov till nya fel eller inkompatibilitet.
När du stöter på det här felet kan du kontrollera serverns felloggar för mer information. Placeringen av felloggar varierar från server till server beroende på konfiguration, operativsystem, webbserver, de programmeringsspråk som används och andra faktorer, så vi kan inte ge några specifika instruktioner. Vi rekommenderar att du kontrollerar både loggarna och konfigurationen av felloggen för något av följande som du använder för att ta emot webhooks:
Ditt programmeringsspråk (Ruby, Python, PHP, Java, Node.js, Go, .NET osv.)
Din webbserver (Nginx, Apache, Microsoft IIS, osv.)
Din moln- eller serverleverantör (Amazon Web Services, Google Cloud Computing, Cloudflare, osv.)