Webhooks: wat te doen als de HTTP-statuscode begint met een vier (4xx) of vijf (5xx)

Een HTTP-statuscode in de reeks 400-499 of 500-599 komt van je server, en geeft aan dat je systeem het verzoek heeft ontvangen, maar het niet kon verwerken. Probeer het volgende:

  1. Kijk in het dashboard naar het antwoord van je server voor aanvullende informatie: Het is mogelijk dat er geen extra informatie in het antwoord staat. Dit hangt af van hoe je server is geconfigureerd en hoe je code is ontworpen om op fouten te reageren

  2. Controleer de logboeken van je server op fouten of waarschuwingen: Deze fouten moeten je wijzen naar de bron van de foutmelding, wat de afhandelingscode van je webhook of een configuratieprobleem op je server kan zijn

  3. Bevestig dat de ontvangen gebeurtenis een API-versie heeft die jouw code aankan: API-versies bepalen de structuur van het object in een gebeurtenis. Een verkeerde API-versie tussen een inkomende gebeurtenis en jouw verwerkingscode kan leiden tot onverwachte fouten

Een aantal veel voorkomende fouten die statuscodes 4xx en 5xx veroorzaken en de oplossingen ervoor staan hieronder.

Fout: geen handtekeningen gevonden die overeenkomen met de verwachte handtekening voor de payload

Deze of een soortgelijke fout (de formulering kan per bibliotheek verschillen) betekent dat de verificatie van de webhook-handtekening is mislukt. Deze fout wordt meestal veroorzaakt door een van de volgende zaken:

  • De verkeerde geheime sleutel voor ondertekening van de webhook (whsec_) werd gebruikt tijdens het verificatieproces van de handtekening

    • Zorg ervoor dat je de geheime sleutel voor ondertekening van de webhook gebruikt dat overeenkomt met het webhookeindpunt dat de gebeurtenis levert. Je kunt deze vinden in het dashboard na het selecteren van een specifiek webhook-eindpunt

    • Als je Stripe-CLI gebruikt genereert het een geheime sleutel voor ondertekening van de webhook die wordt weergegeven en die je kunt gebruiken als je de opdracht stripe listen uitvoert

  • De hoofdtekst van het verzoek werd gewijzigd voordat de verificatie van de webhook-handtekening plaatsvond

    • Het verificatieproces van de webhook-handtekening vereist de onbewerkte, ongewijzigde inhoud van het inkomende verzoek van Stripe om te kunnen werken

    • Als je code de hoofdtekst van het verzoek parseert, formatteert of anderszins wijzigt vóór de verificatie van de handtekening, dan zie je een fout zoals deze

    • Code aanpassen of verwijderen, inclusief middleware, die mogelijk de onbewerkte hoofdtekst van het inkomende verzoek wijzigt en probeer het opnieuw

      • Opmerking: Node.js middleware wijzigt vaak de hoofdtekst van inkomende verzoeken. Probeer de onbewerkte hoofdtekst eruit te halen voordat andere middleware draait

Fout: tijdstempel buiten de tolerantiezone

Deze of een soortgelijke fout (de formulering kan per bibliotheek verschillen) betekent dat de ontvangen gebeurtenis te oud is om te kunnen verifiëren. Webhook-handtekeningen hebben een tijdscomponent, en moeten kort na ontvangst worden geverifieerd.

Probeer het volgende:

  • Bevestig dat de tijd en datum op je server correct zijn ingesteld

  • Zorg ervoor dat je inkomende webhook-handtekeningen verifieert zodra je gebeurtenissen ontvangt, zonder vertraging

Interne serverfout

Deze fouten worden meestal veroorzaakt door code die een uitzondering maakt, een parsing-fout of een of andere brekende wijziging.

Meestal wordt deze soort fout veroorzaakt door een of andere verandering op de server of infrastructuur die verantwoordelijk is voor het accepteren en verwerken van webhooks. Nieuwe of gewijzigde code, een serverupdate of een configuratieverandering kan voor een nieuwe foutmodus of incompatibiliteit zorgen.

Als je deze fout tegenkomt, controleer dan de foutenlogboeken van je server voor meer informatie. De locatie van foutenlogboeken varieert per server, op basis van configuratie, besturingssysteem, webserver, de gebruikte programmeertalen en andere factoren, dus we kunnen geen specifieke instructies geven.  We raden je aan zowel de logboeken als de configuratie van het foutenlogboek te controleren op een van de volgende zaken die je mogelijk gebruikt om webhooks te ontvangen:

  • Je programmeertaal (Ruby, Python, PHP, Java, Node.js, Go, .NET, etc.)

  • Je webserver (Nginx, Apache, Microsoft IIS, enz.)

  • Je cloud- of serverprovider (Amazon Web Services, Google Cloud Computing, Cloudflare, etc.)

Heeft dit je vraag beantwoord?
We gebruiken cookies om je een betere ervaring te geven, en voor marketingdoeleinden. Lees ons cookiebeleid of beheer de cookies.