Erota vastaanotto ja valmis käsittely
Takuut riippuvat tarjoajasta. Stripe kuvaa mahdolliset kaksoiskappaleet eikä takaa järjestystä. Onnistuneen HTTP-vastauksen tulee vastata kestävää vastaanottoa tai sovittua käsittelyä, ei vain muistissa olevaa pyyntöä.
| Tilanne | Odotettu toiminta | Hyödyllinen todiste |
|---|---|---|
| Sama tapahtuma kahdesti | Estä kaksinkertainen liiketoimintavaikutus. | Käsitelty tunniste ja pysyvä tulos. |
| Vanha tapahtuma saapuu myöhemmin | Älä korvaa uudempaa tilaa sokeasti. | Auktoritatiivinen tila ja siirtymäsääntö. |
| Raskas käsittely | Kestävä vastaanotto ja lykätty työ. | Jonon tila ja työntekijän tulos. |
| Puuttuva toimitus | Täsmäytä ja palauta tarjoajan sääntöjen mukaan. | Todettu ero ja tarkistettu korjaus. |
Rakenna tarkistettava vastaanotto
- Tarkista HTTPS, allekirjoitus ja toistosuojaus tarjoajan protokollan mukaan. Stripe tarkistaa allekirjoituksen raakasisällöstä; JSONin muuttaminen ensin voi rikkoa tarkistuksen.
- Tallenna tapahtuma tai käsittely pysyvästi ennen sopivaa kuittausta. Erota toimitustunniste, tapahtumatunniste ja toiminnon idempotenssiavain.
- Testaa kaksoiskappaleet, väärä järjestys, työntekijän keskeytys ja uudelleenkäynnistys. Lue objektin auktoritatiivinen tila, jos vanha tapahtuma ei tue turvallista päätöstä.
Järjestä palautuminen ja täsmäytys
Dokumentoi yritykset, aikarajat, käsittelemättömät tapahtumat ja tarjoajatäsmäytys. Nopea kuittaus voi peittää myöhemmän käsittelyvirheen. Seuraa myös lopullista toimintoa ja minimoi salaisuudet sekä henkilötiedot lokeissa.
Alkuperäiset lähteet
Käsittele toistuvia webhookeja turvallisesti.
Ilmoitus voidaan toistaa aikakatkaisun tai menetettyjen vastausten jälkeen. Luotettavuus riippuu alkuperän varmentamisesta, tapahtumatunnisteesta ja käsittelystä, joka erottaa uuden viestin kaksoiskappaleesta.
- Vahvista jokainen pyyntö palveluntarjoajan mekanismilla.
- Testaa uudelleenyritykset, kaksoiskappaleet ja muuttunut saapumisjärjestys.
- Kuittaa johdonmukaisesti käsittelyn tai kestävän jonotuksen jälkeen.
Ensisijainen lähde: IETF RFC 9457 — Problem Details for HTTP APIs. Aiheeseen liittyvä menetelmä: lue käytännön opas.
