ప్రతిస్పందన అదృశ్యమైనప్పుడు Stripe మీ అభ్యర్థనను గుర్తుంచుకుంటుంది
సర్వర్ ఆపరేషన్ను పూర్తి చేసిన తర్వాత సమయం ముగియడం చెక్అవుట్ను అనిశ్చితంగా ఉంచగలదు.
సర్వర్ ఆపరేషన్ను పూర్తి చేసిన తర్వాత సమయం ముగియడం చెక్అవుట్ను అనిశ్చితంగా ఉంచగలదు. ఈ 'అండర్ ది హుడ్' వివరణకర్త Stripe API v1 యొక్క డాక్యుమెంట్ చేయబడిన ఐడెంపోటెన్సీ కాంట్రాక్ట్ను ఉపయోగించి స్థిరమైన ఆపరేషన్ కీలు, సేవ్ చేయబడిన-ప్రతిస్పందన రీప్లే, పరామితి మరియు ఏకకాల పరిమితులు, నిలుపుదల హారిజోన్ మరియు ఫలిత సయోధ్యను చూపుతుంది.
వ్రాతపూర్వక సంచికను చదవండి (ఇంగ్లీష్) ↗
ఈ వీడియో ఏమి కవర్ చేస్తుంది
- ఐడెంపోటెన్సీ అనేది ఒక ఆపరేషన్ను పునరావృతం చేయడం వల్ల కలిగే ఉద్దేశించిన ప్రభావాన్ని సూచిస్తుంది. Stripe API v1 ఒక డాక్యుమెంట్ చేయబడిన సేవ్ చేయబడిన-ప్రతిస్పందన రీప్లే కాంట్రాక్ట్ను జోడిస్తుంది.
- అదే లాజికల్ చర్య యొక్క రీట్రై అదే కీ మరియు పారామితులను ఉపయోగిస్తుంది. ప్రత్యేక SDK కాల్లు లేదా అప్లికేషన్ రీస్టార్ట్ల అంతటా ఆపరేషన్ కీని నిల్వ చేయండి; నిజమైన కొత్త చర్యకు దాని స్వంత కీ అవసరం.
- ఎండ్పాయింట్ అమలు ప్రారంభమైన తర్వాత, Stripe API v1 మొదటి అభ్యర్థన యొక్క స్థితి మరియు బాడీని, 500 ఎర్రర్లతో సహా సేవ్ చేస్తుంది మరియు రీట్రైల సమయంలో ఆ సేవ్ చేయబడిన ప్రతిస్పందనను తిరిగి ఇస్తుంది.
- అదే కీతో మార్చబడిన పారామితులు సరిపోలనివిగా చేస్తాయి. ధ్రువీకరణ లోపాలు మరియు ఏకకాల అమలు సంఘర్షణలు ఆ ప్రయత్నానికి ఐడెంపోటెంట్ ఫలితాన్ని సేవ్ చేయవు మరియు వాటిని మళ్లీ ప్రయత్నించవచ్చు.
- Stripe API v1 కీలను కనీసం 24 గంటల పాటు నిల్వ చేస్తుంది మరియు ఆ తర్వాత వాటిని తొలగించవచ్చు. పరిష్కరించబడని నెట్వర్క్ రీట్రైలను మొదటి 24 గంటలకు పరిమితం చేయండి, ఆపై ఆపరేషన్ను పునరావృతం చేసే ముందు ఆపివేసి సయోధ్య చేసుకోండి.
- కనెక్టివిటీ పునరుద్ధరించబడిన తర్వాత కూడా కాష్ చేయబడిన 500 మళ్లీ ప్లే అవుతూ ఉండవచ్చు. అసలు ఆపరేషన్కు సైడ్ ఎఫెక్ట్లు ఉండవచ్చు; దాని ఫలితాన్ని నిర్ధారించడానికి సంబంధిత వస్తువు, డాష్బోర్డ్ అభ్యర్థన మరియు వెబ్హుక్లను ఉపయోగించండి.
- API v2 విభిన్న రీప్లే సెమాంటిక్స్ను ఉపయోగిస్తుంది. ఇమెయిల్, ఇన్వెంటరీ మరియు ప్రతి స్థానిక డేటాబేస్ ఆపరేషన్ కోసం ఒక కీ సార్వత్రిక ఖచ్చితంగా-ఒకసారి డెలివరీని ఏర్పాటు చేయదు.
అనువదించబడిన ట్రాన్స్క్రిప్ట్
అసలైన ఆంగ్ల కథనం నుండి అనువదించబడింది. అందుబాటులో ఉన్న ఆడియో మరియు క్యాప్షన్లు YouTube ద్వారా నియంత్రించబడతాయి.
మీ చెల్లింపు సమయం ముగిసి రద్దు చేయబడిందా?
0:00 సమయం ముగియడం అంటే మీ చెల్లింపు విఫలమైందని మీరు అనుకుంటున్నారు. ప్రతిస్పందన అదృశ్యమైనప్పుడు సర్వర్ పనిని పూర్తి చేయగలదు, మీ చెక్అవుట్ విశ్వాసంతో ఏమీ ప్రదర్శించకుండా వదిలివేస్తుంది. రీట్రై మళ్ళీ ఎందుకు ఛార్జ్ చేయగలదు? Stripe ఒక ప్రయత్నాన్ని ఎలా గుర్తుంచుకుంటుంది? మీరు ఎప్పుడు మళ్ళీ ప్రయత్నించడం ఆపివేయాలి? మరియు ఒక అసహ్యకరమైన వివరాలను గుర్తుంచుకోండి. గుర్తుంచుకున్న లోపం నెట్వర్క్ సమస్యను అధిగమించగలదు.
0:17 మేము దాని వద్దకు తిరిగి వస్తాము. ఇది ది డైలీ డిఫ్, అండర్ ది హుడ్.
ఐడెంపోటెన్సీ కీ దేనిని గుర్తిస్తుంది?
0:21 ఐడెంపోటెన్సీ అంటే ఒక ఆపరేషన్ను పునరావృతం చేయడం వల్ల ఒకసారి చేయడం వల్ల కలిగే అదే ఉద్దేశించిన ప్రభావం ఉంటుంది. ఒక ఐడెంపోటెన్సీ కీ ఒక లాజికల్ చర్యను లేబుల్ చేస్తుంది. Stripe యొక్క API వెర్షన్ వన్ రీట్రైలలో ఆ లేబుల్ను గుర్తిస్తుంది మరియు సేవ్ చేయబడిన ప్రతిస్పందనను మళ్ళీ ప్లే చేస్తుంది. కాఫీ కొనడం ఊహించుకోండి. Stripe మీ చెల్లింపు అభ్యర్థనను పూర్తి చేస్తుంది మరియు ప్రతిస్పందన తిరిగి వచ్చేటప్పుడు కోల్పోతుంది. కస్టమర్ ఒక స్పిన్నర్ను చూస్తాడు. వారి బ్యాంకుకు మరింత ఉత్తేజకరమైన వివరణ ఉండవచ్చు. రక్షించబడని క్రియేట్ అభ్యర్థన సైడ్ ఎఫెక్ట్ను పునరావృతం చేయగలదు.
అదే కీ రీట్రైని ఎలా సురక్షితంగా చేస్తుంది?
0:45 మొదటి ప్రయత్నానికి ముందు ఒక ప్రత్యేక కీని జోడించండి మరియు రీట్రైల కోసం దానిని ఉంచండి. మీ అప్లికేషన్ మళ్లీ ప్రారంభమైతే, మీ రికార్డులలో ఆపరేషన్తో ఆ కీని భద్రపరచండి. Stripe యొక్క వెర్షన్ వన్ API కోసం, ఎండ్పాయింట్ అమలు ప్రారంభమైన తర్వాత, మొదటి అభ్యర్థన యొక్క స్థితి మరియు బాడీ సేవ్ చేయబడతాయి. అదే కీ మరియు పారామితులను మళ్ళీ పంపండి మరియు Stripe సేవ్ చేయబడిన ప్రతిస్పందనను తిరిగి ఇస్తుంది. దాని రసీదు మళ్లీ ప్రయాణించేటప్పుడు కాఫీ అక్కడే ఉంటుంది. ఇది Stripe యొక్క అసలు పదజాలం.
Stripe ఖచ్చితంగా ఏమి సేవ్ చేస్తుంది?
1:07 అదే కీతో రీట్రైలు సేవ్ చేయబడిన ప్రతిస్పందనను తిరిగి ఇస్తాయి, ఐదు వందల లోపాలతో సహా. డాక్యుమెంటేషన్ మీ ఆశాజనక పేరున్న రీట్రై సహాయకుడి కంటే ఎక్కువ పని చేస్తుంది. కస్టమర్ మళ్ళీ నొక్కాడు. మీ యాప్ అది పెండింగ్లో ఉన్న కొనుగోలును పునఃప్రారంభిస్తుందా లేదా మరొకటి ప్రారంభిస్తుందా అని నిర్ణయిస్తుంది. నిజమైన కొత్త కాఫీకి కొత్త కీ వస్తుంది. ప్రతి నెట్వర్క్ రీట్రై కోసం కొత్త కీ రక్షణను ఓడిస్తుంది. అదే కీతో విభిన్న పారామితులు సరిపోలనివిగా చేస్తాయి.
1:27 పారామితులు ధ్రువీకరణలో విఫలమైతే, లేదా ఆ కీతో మరొక అభ్యర్థన ఇంకా అమలు అవుతుంటే,
అభ్యర్థన మారినప్పుడు ఏమి జరుగుతుంది?
1:30 Stripe ఆ ప్రయత్నానికి ఐడెంపోటెంట్ ఫలితాన్ని సేవ్ చేయదు. ఆ అభ్యర్థనలను మళ్లీ ప్రయత్నించవచ్చు. రన్నింగ్ అభ్యర్థనకు సంఘర్షణ వస్తుంది. ఇవి వెర్షన్ వన్ నియమాలు. వెర్షన్ టూ విభిన్నంగా ప్రవర్తిస్తుంది. ఒక హెడర్ మీ సిస్టమ్ అంతటా ఖచ్చితంగా ఒకసారి డెలివరీని హామీ ఇవ్వదు. ఇమెయిల్, ఇన్వెంటరీ మరియు మీ డేటాబేస్ ప్రతి ఒక్కటి లోపం నిర్వహణను కలిగి ఉండాలి. కీ దాని డాక్యుమెంట్ చేయబడిన పరిధిలో ఆపరేషన్ను రక్షిస్తుంది.
1:52 Stripe వెర్షన్ వన్ కీలను కనీసం ఇరవై నాలుగు గంటల పాటు నిల్వ చేస్తుంది మరియు ఆ తర్వాత వాటిని తొలగించవచ్చు. తొలగించబడిన కీ కొత్త అభ్యర్థనను అమలు చేయగలదు.
గుర్తుంచుకున్న ఫలితం ఎంతకాలం మళ్లీ ప్రయత్నించడానికి సురక్షితంగా ఉంటుంది?
1:59 పరిష్కరించబడని రీట్రైలను మొదటి రోజులోనే ఉంచండి. దాని తర్వాత, ఆపివేసి అసలు ఫలితాన్ని సయోధ్య చేసుకోండి. సర్వర్కు విశ్రాంతినివ్వడానికి ఎక్స్పోనెన్షియల్ బ్యాక్ఆఫ్ మరియు జిట్టర్ను ఉపయోగించండి. లేకపోతే రీట్రైలు మండుతున్న కాఫీ షాప్ వెలుపల క్యూలో నిలబడతాయి. Stripe లైబ్రరీలు రీట్రైలను నిర్వహిస్తాయి, కానీ మీ లైబ్రరీ యొక్క డిఫాల్ట్లను తనిఖీ చేయండి. ఆ అంటుకునే లోపమే సమస్య. కనెక్టివిటీ పునరుద్ధరించబడిన తర్వాత కూడా కాష్ చేయబడిన ఐదు వందల ప్రతిస్పందన మళ్లీ ప్లే అవుతూ ఉంటుంది.
గుర్తుంచుకున్న లోపం ఎందుకు తిరిగి వస్తూనే ఉంటుంది?
2:20 అసలు ఆపరేషన్ సైడ్ ఎఫెక్ట్లను ఉత్పత్తి చేసి ఉండవచ్చు. వస్తువులు, డాష్బోర్డ్ మరియు వెబ్హుక్లను ఉపయోగించి దాని ఫలితాన్ని పరిష్కరించండి. కొత్త కీ చర్యను పునరావృతం చేయగలదు. మీరు దీన్ని వినడం కంటే చదవడానికి ఇష్టపడితే, ప్రతి ఉదయం ది డిఫ్ మీ ఇన్బాక్స్లో ఉచితంగా daily diff dot dev లోకి వస్తుంది, లింక్ కింద ఉంది. తీర్పు, అండర్ ది హుడ్. షిప్ ఇట్. నేను పరిమిత రీట్రైలు మరియు సయోధ్యతో స్థిరమైన కీలను షిప్ చేస్తాను,
ఈ కాంట్రాక్ట్తో నేను రీట్రై బటన్ను షిప్ చేస్తానా?
2:39 తద్వారా కస్టమర్లు మీ డిస్ట్రిబ్యూటెడ్ సిస్టమ్స్ విద్యకు నిధులు సమకూర్చకుండా కాఫీని పొందుతారు. మరియు ఈ రోజుకు ఇదే డిఫ్. నేను ఆక్సిరిసి నుండి నికో. బాధ్యతాయుతంగా విలీనం చేయండి. ఇది రోజువారీ డిఫ్. అండర్ ది హుడ్.
మూలాలు
- 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



