IOSOR Tieto

Tapahtumajärjestys vs pääkirjakirjaus

Väärässä järjestyksessä saapuvat DLR- ja MO-tapahtumat eivät saa rikkoa ennakkomaksun veloitussääntöjä — saapumisjärjestjestys ei ole rahalaki.

Tapahtumajärjestys vs pääkirjakirjaus. Verkot toimittavat takaisinkutsut väärässä järjestyksessä. Myöhäinen DLR, aikainen MO tai tilamuutos ennen selvitystä ei saa luoda toista veloitusta tai kirjoittaa uudelleen selvitettyä riviä. Tämä sivu on kirjausjärjestyksen sopimus: pääkirjan säännöt kestävät uudelleenjärjestelyn — ei mikään korrelaatio-tunnisteen aluke eikä mikään MO vs MT -laskutusessee.

Saapumisjärjestjestys ei ole pääkirjalaki

HTTP-saapuminen on kuljetusonnettomuus. Rahat kirjataan pidätys → selvitys → tuloksen päivitys -mallilla — ei sen mukaan, mikä takaisinkutsu saapui viimeisenä. Pehmeä USD 1,000/kk käsittelee uudelleenjärjestelyä talousvälikohtauksena, kun tuote näyttää onnistumista pääkirjan liikkuessa kahdesti. USD 20 todistaa, että pakotettu myöhäinen DLR ei koskaan avaa rinnakkaista veloitusta. Saman tunnisteen toistot: Kaksoiskappaleverkkokoukku ei saa luoda toista veloitusta.

Miltä väärä järjestys näyttää

Saapumismalli Turvallinen kirjaus Turvaton reaktio
DLR ennen selvitystä Odottaa; selvitä kerran pidätyksessä Veloita pelkästä DLR:stä
Epäonnistunut sitten toimitettu Päivitä tulos paikallaan Toinen veloitus kääntymisestä
MO ennen MT-korrelaatiota Tallenna saapuneisiin; liitä MT-selvitykseen Veloita MO lähtevänä
Tila palautuksen jälkeen Ei uutta rahaa; merkitse muistiin Uudelleenselvitä vapautettu aikomus
Kaksi päätettä, yksi aikomus Yksi raharivi Kaksi veloitusriviä

Kirjaussäännöt, jotka kestävät uudelleenjärjestelyn

Luo pidätys- ja idempotenttiavainten minttaus ennen sivuvaikutuksia (Verkkokoukukontrakti ennen ensimmäistä lähetystä). Selvitä kerran laskutettavaa aikomusta kohti; myöhemmät tapahtumat päivittävät vain tulosta. Älä koskaan avaa rinnakkaista veloitusta aikaiselle tai myöhäiselle DLR:lle tai MO:lle. Hylkää tai pysäköi allekirjoitetun ikkunan ulkopuolella — ei keksittyä onnistumista. Vie liitokset aikomuksen mukaan — ei saapumisajan.

Viive on normaalia; kaksoisrahat eivät

Verkkoviive on normaalia hajautetuissa järjestelmissä. Se, että rahat veloitetaan kahdesti yhdestä aikomuksesta, on kirjauslogiikan epäonnistuminen. Jos järjestelmäsi luo toistuvan veloituksen myöhäisestä DLR:stä, käsittelet virheellistä taloustapahtumaa. Täsmäytyksen on perustuttava aikomustunnisteeseen, ei HTTP-saapumisjärjestykseen. Älä anna verkkoviiveen määrittää taloudellista tilaasi.

Ostajan tarkistuslista tapahtumajärjestykselle vs kirjaukselle

Varmista, että järjestelmäsi erottaa 'tapahtuman saapumisen' ja 'selvityksen'. Vahvista, että idempotenttiavain luodaan ennen ensimmäistä lähetystä. Tarkista, ettei myöhäinen DLR laukaise uutta veloitusta. Varmista, että tilan vaihtuminen (esim. epäonnistuneesta onnistuneeksi) päivittää alkuperäisen rivin uuden luomisen sijaan. Varmista, että täsmäytyksesi käyttää aikomustunnistetta ensisijaisena lähteenä.

Aloita IOSOR:lla

Kirjaa prepaid-veloitus liiketoiminta-avaimelle, ei webhookin saapumisjärjestykseen. Myöhäinen DLR ja varhainen accepted voivat laskeutua missä tahansa järjestyksessä; rekisteri kirjoittaa silti yhden rivin. Uusinta allekirjoitusikkunassa ei saa luoda toista veloitusta. Pakota yksi myöhäinen ja yksi varhainen tila maksetulle lähetykselle ja todista yksi kirjaus.

IOSOR-yhteenveto

Saapumisjärjestys ei ole rekisterilaki. Kirjausavain omistaa rahan; jonojärjestys ei.

Tee: kirjaa kerran idempotenssiavaimelle; myöhäinen DLR on tila, ei uusi veloitus.

Älä: veloita uudestaan koska DLR tuli ensin, äläkä jätä toista riviä uudelleen soitetulle webhookille.

Oliko tästä oppaasta apua?

Aiheeseen liittyvät oppaat