Stripe-k zure eskaera gogoratzen du erantzuna desagertzen denean
Denbora-muga batek ordainketa zalantzazkoa utzi dezake zerbitzariak eragiketa amaitu ondoren.
Denbora-muga batek ordainketa zalantzazkoa utzi dezake zerbitzariak eragiketa amaitu ondoren. Under the Hood azalpen honek Stripe API v1-aren dokumentatutako idemponentzia-kontratua erabiltzen du eragiketa-gako egonkorrak, gordetako erantzunaren errepikapena, parametro eta konkurrentzia-mugak, atxikipen-horizontea eta emaitzen adiskidetzea erakusteko.
Irakurri idatzizko edizioa (ingelesez) ↗
Bideo honek zer jorratzen duen
- Idempotentziak eragiketa bat errepikatzearen aurreikusitako efektuari buruzkoa da. Stripe API v1-ek dokumentatutako gordetako erantzunaren errepikapen-kontratu bat gehitzen du.
- Ekintza logiko bera berriro saiatzeko gako eta parametro berberak erabiltzen dira. Eragiketa-gakoa SDK dei edo aplikazioen berrabiarazte bereizietan zehar iraunarazi; ekintza berri batek bere gakoa behar du.
- Amaiera-puntua exekutatzen hasten denean, Stripe API v1-ek lehen eskaeraren egoera eta gorputza gordetzen ditu, 500 erroreak barne, eta gordetako erantzun hori itzultzen du berriro saiatzean.
- Parametro aldatuek gako berarekin desadostasun bat sortzen dute. Baliozkotze-hutsek eta exekuzio konkurrentzia-gatazkek ez dute emaitza idemponente bat gordetzen saiakera horretarako eta berriro saiatu daitezke.
- Stripe-k API v1 gakoak gutxienez 24 orduz gordetzen ditu eta ondoren ezabatu ditzake. Konpondu gabeko sare-berriro-saiakerak lehen 24 ordura mugatu, ondoren gelditu eta adiskidetu eragiketa errepikatu aurretik.
- 500eko errore cache batek konektibitatea berreskuratu ondoren ere errepikatzen jarrai dezake. Jatorrizko eragiketak albo-ondorioak izan ditzake; erabili dagokion objektua, Dashboard-eko eskaera eta webhooks-ak bere emaitza ezartzeko.
- API v2-k errepikapen-semantika desberdinak erabiltzen ditu. Gako batek ez du inoiz ere mezu elektroniko, inbentario eta tokiko datu-baseko eragiketa guztietarako behin betiko entregaren bermea ematen.
Itzulitako transkripzioa
Jatorrizko ingelesezko narraziotik itzulia. Eskuragarri dauden audioa eta azpitituluak YouTube-k kontrolatzen ditu.
Denbora-muga batek zure ordainketa ezeztatu al du?
0:00 Uste duzu denbora-muga batek zure ordainketa huts egin duela esan nahi duela. Zerbitzariak amaitu dezake erantzuna desagertzen den bitartean, zure ordainketa-mahaia ezer ere ez erakusten konfiantzaz utziz. Zergatik kobratu dezake berriro saiatzeak? Nola gogoratzen du Stripe-k saiakera bat? Noiz utzi beharko zenioke berriro saiatzeari? Eta gogoan izan xehetasun gogaikarri bat. Gogoratutako errore batek sare-arazoa gainditu dezake.
0:17 Horretara itzuliko gara. Hau The Daily Diff da, azalpean.
Zer identifikatzen du idemponentzia-gako batek?
0:21 Idempotentziak esan nahi du eragiketa bat errepikatzeak behin egitearen efektu bera duela. Idempotentzia-gako batek ekintza logiko bat etiketatzen du. Stripe-ren API bertsio batek etiketa hori berriro saiatzean aitortzen du eta gordetako erantzun bat errepikatzen du. Imajinatu kafe bat erostea. Stripe-k zure ordainketa-eskaera osatzen du, eta erantzuna itzultzean galdu egiten da, etxera. Bezeroak biratzaile bat ikusten du. Haien bankuak interpretazio zirraragarriagoa izan dezake. Babestu gabeko sortze-eskaera batek albo-ondorioa errepikatu dezake.
Nola egiten du gako berak berriro saiatzea segurua?
0:45 Erantsi gako bakarra lehen saiakera baino lehen eta gorde berriro saiatzeko. Zure aplikazioa berrabiarazten bada, gorde gako hori eragiketarekin batera zure erregistroetan. Stripe-ren bertsio bateko APIrako, amaiera-puntuaren exekuzioa hasten denean, lehen eskaeraren egoera eta gorputza gordetzen dira. Bidali gako eta parametro berberak berriro, eta Stripe-k gordetako erantzuna itzultzen du. Kafea bere lekuan geratzen da, ordainagiria berriro bidaiatzen duen bitartean.
Zer gordetzen du zehazki Stripe-k?
1:07 Hemen duzue Stripe-ren benetako hitza. Gako berarekin egindako berriro saiatzeek gordetako erantzuna itzultzen dute, bostehun errore barne. Dokumentazioak zure 'berriro saiatu' laguntzaile izen optimista baino lan gehiago egiten du. Bezeroak berriro sakatzen du. Zure aplikazioak erabakitzen du horrek zain dagoen erosketa berriro hasten duen edo beste bat bat hasten duen. Benetan kafe berri batek gako berri bat lortzen du. Sareko berriro saiatze bakoitzeko gako berri bat edukitzeak babesa desaktibatzen du.
1:27 Parametro desberdinekin, gako berarekin, desadostasun bat eragiten da.
Zer gertatzen da eskaera aldatzen denean?
1:30 Parametroek baliozkotzea huts egiten badute, edo gako hori duen beste eskaera bat oraindik exekutatzen ari bada, Stripe-k ez du emaitza idemponente bat gordetzen saiakera horretarako. Eskaera horiek berriro saiatu daitezke. Lasterketa-eskaera batek gatazka bat lortzen du. Hauek bertsio bateko arauak dira. Bertsio biak ezberdin jokatzen du. Goiburu batek ezin du behin betiko entrega agindu zure sistema osoan. Posta elektronikoak, inbentarioak eta zure datu-baseak hutsegiteen kudeaketa behar dute.
1:52 Gakoak eragiketa bere dokumentatutako esparruan babesten du. Stripe-k bertsio bateko gakoak gutxienez hogeita lau orduz gordetzen ditu eta ondoren ezabatu
Zenbat denboraz da segurua gogoratutako emaitza berriro saiatzeko?
1:59 ditzake. Ezabatutako gako batek eskaera berri bat exekutatu dezake. Mantendu konpondu gabeko berriro saiatzeak lehen egunean. Horrez gain, gelditu eta adiskidetu jatorrizko emaitza. Erabili atzerapen esponentziala eta dardara zerbitzariari arnasa emateko. Bestela, berriro saiatzeek ilara bat osatzen dute erretzen ari den kafetegi baten kanpoaldean. Stripe-ren liburutegiek berriro saiatzeak kudeatzen dituzte, baina egiaztatu zure liburutegiaren ezarpen lehenetsiak. Errore itsaskor hori da arazoa.
Zergatik etorri daiteke atzera etengabe gogoratutako errore bat?
2:20 Gordetako bostehuneko erantzun batek errepikatzen jarraitzen du konektibitatea berreskuratu ondoren. Jatorrizko eragiketak albo-ondorioak sortu izana liteke. Ebatzi bere emaitza objektuak, Dashboard-a eta webhooks-ak erabiliz. Gako berri batek ekintza errepikatu dezake. Hau irakurri nahiago baduzu niri entzun baino, 'the diff' zure sarrera-ontzira iristen da goizero, doan daily diff dot dev-en, beheko estekan.
Berriro saiatzeko botoi bat bidaliko al nuke kontratu honekin?
2:39 Epaia, azalpean. BIDALI. Gako egonkorrak bidaliko nituzke muga zehatzeko berriro saiatzeekin eta adiskidetzearekin, horrela bezeroek kafea lortzen dute zure sistema banatuen hezkuntza finantzatu gabe. Eta hori da gaurko 'diff'-a. Ni Niko naiz, Axrisi-koa. Fusioa arduraz egin.
Iturriak
- Idempotent requestsStripe Docs
- Designing robust and predictable APIs with idempotencyStripe Engineering — Brandur Leach
- Advanced error handlingStripe Docs
- HTTP Semantics — RFC 9110 §9.2.2 Idempotent MethodsIETF / RFC Editor



