IOSOR Tieto

Kaksoiskappaleverkkokoukku ei saa luoda toista veloitusta

Virhepolku: Uudelleenyritykset ja toistot pysyvät idempotentteina ennakkomaksurahoissa ja saapuneissa — yksi tapahtumatunnus, yksi veloitusrivi, yksi saapuneiden rivi.

Vähintään kerran toimitus yrittää uudelleen. Kaksoiskappaleverkkokoukku, joka lähettää toisen veloituksen tai toisen saapuneiden rivin, on raha- ja operaatiohäiriö, ei «vaaraton kuittaus». Tämä sivu on virhepolku: uudelleenyritykset ja toistot pysyvät idempotentteina ennakkomaksurahoissa ja saapuneissa — ei API-lähetyksen idempotenssiessee eikä saapuvien tekstiviestien uudelleenyrityksen pelikirja.

Liittyvät: Allekirjoitus- ja toistoikkunaportti, Verkkokoukukontrakti ennen ensimmäistä lähetystä, Veloitusrivit vs toimitustila samassa ledgerissä.

IOSOR on valkoinen etiketti, ennakkomaksettu.

Idempotenssi on virhepolku, ei iskulause

Onnistumispolku: yksi allekirjoitettu tapahtuma, yksi hyväksyntä, yksi veloitus. Virhepolku polttaa luottamuksen — aikakatkaisu, 5xx, palveluntarjoajan toisto, operaattorin uudelleentyöntö. Tallenna idempotenssiavain Verkkokoukukontrakti ennen ensimmäistä lähetystä ennen sivuvaikutuksia: kirjanpito, saapuneet, CRM.

Mikä lasketaan kaksoiskappaleeksi

Signaali Käsittele kaksoiskappaleena kun Turvallinen tulos
Tapahtumatunnus Sama tunnus jo hyväksytty ikkunassa Kuittaus; ei toista veloitusta
Viestitunnus Sama viesti jo kirjanpito-linkitetty Käytä riviä uudelleen; ei uutta veloitusta
Saapuneiden avain Sama MO/MT jo arkistoitu Ei toista saapuneiden riviä
Ulkopuolinen toistoikkuna Vanhentunut toisto portin hylkäyksen jälkeen Hylkää; ei raha- tai tilakirjoitusta

Raha ei saa liikkua kahdesti

Toinen veloitus samalle tapahtumatunnukselle on bugi, vaikka tuote «näyttää edelleen toimitetulta». Talous suodattaa tapahtuma- tai viestitunnuksen mukaan ja näkee yhden ennakkomaksurivin kyseiselle UTC-ikkunalle. Osittaiset sivuvaikutukset kuittauksen jälkeen — CRM ensin, kirjanpito myöhemmin — tuottavat kaksoistotuuden. Jos käsittely epäonnistuu pysyväisidoksen jälkeen, yritä työntekijää uudelleen samalla avaimella; älä hyväksy HTTP-runkoa uudelleen uutena veloituksena.

Saapuneet eivät saa myöskään kaksinkertaistua

Idempotenssi ei koske vain rahaa. Toistettu saapuva tai toimitustapahtuma, joka avaa toisen saapuneiden ketjun, opettaa tuen jahtaamaan haamuja ja voi käynnistää automaattisen vastauksen silmukoita. Tallenna saapuneiden avain samalla tapahtumatunnuksella, jota käytetään veloitukseen. Tuote ja talous jakavat hylkäys- ja kaksoiskappalesäännöt, jotta saapuneiden postilaatikko pysyy puhtaana.

Ostajan tarkistuslista kaksoiskappaleturvallisille verkkokoukuille

Testaa toisto ennen tuotantoon siirtymistä. Lähetä sama verkkokoukku kahdesti välittömästi: ensimmäinen tuottaa yhden veloituksen, toinen palauttaa kuittauksen ilman uutta veloitusta tai riviä. Tarkista, että taustajärjestelmän kirjanpito näyttää vain yhden tapahtumarivin kyseiselle aikaleimalle. Varmista, että virheloki erottaa aidot hylkäykset uudelleenyrityksen toistoista.

Aloita IOSORilla

Pakota yksi allekirjoitettu uusinta ikkunan sisällä käytävällä, joka on jo veloittanut. Vie tapahtumatunnus kirjanpitotunnuksen viereen ja todista yksi debit-rivi plus yksi saapuneet-rivi. Jos toinen debit näkyy, pysäytä se kuluttaja ja palauta ylimääräinen rivi — älä netota myöhempään liikenteeseen. Tämä portti on uusinnan rahaa, ei E.164-tarkistus eikä toimitusteksti.

Aiheeseen: Verkkokoukukontrakti ennen ensimmäistä lähetystä Allekirjoitus- ja toistoikkunaportti Veloitusrivit vs toimitustila samassa ledgerissä.

IOSOR-yhteenveto

Uusinta ei ole uusi lähetys.

Oliko tästä oppaasta apua?

Aiheeseen liittyvät oppaat