𝗦𝘁𝗼𝗽 𝗥𝗲𝗳𝘂𝗻𝗱𝗶𝗻𝗴 𝗣𝗮𝘆𝗺𝗲𝗻𝘁𝘀 𝗬𝗼𝘂 𝗦𝗵𝗼𝘂𝗹𝗱 𝗡𝗲𝘃𝗲𝗿 𝗛𝗮𝘃𝗲 𝗖𝗵𝗮𝗿𝗴𝗲𝗱
చాలా మంది డెవలపర్లు చెకౌట్ ప్రక్రియలో వెంటనే కార్డు నుండి డబ్బును వసూలు చేసేలా (charge) రూపొందిస్తారు. ఆ తర్వాత, స్టాక్ తనిఖీలు లేదా మోసపూరిత లావాదేవీల (fraud checks) వంటి ఆర్డర్ వాలిడేషన్ ప్రక్రియలను నిర్వహిస్తారు.
ఒకవేళ వాలిడేషన్ విఫలమైతే, కోడ్ రీఫండ్ చేస్తుంది.
ఇది మీ కస్టమర్లకు సమస్యలను కలిగిస్తుంది. వారు ఒకసారి డబ్బు కట్ అవ్వడం చూసి, కొన్ని రోజుల తర్వాత రీఫండ్ రావడం చూస్తారు. దీనివల్ల మీ కంపెనీపై నమ్మకం పోతుంది. వారి డబ్బు ఎక్కడైనా చిక్కుకుపోయిందేమో అని వారు అనుకుంటారు.
రీఫండ్స్ వల్ల నిజమైన నష్టాలు ఉన్నాయి:
- రెండు వేర్వేరు లావాదేవీలను చూసినప్పుడు కస్టమర్లు నమ్మకాన్ని కోల్పోతారు.
- రీఫండ్ బ్యాంక్ స్టేట్మెంట్లో కనిపించడానికి 5 నుండి 10 రోజులు పడుతుంది.
- ట్రాన్సాక్షన్ ఫీజులు లేదా కరెన్సీ ఎక్స్ఛేంజ్ రేట్ల వల్ల మీరు డబ్బును కోల్పోయే అవకాశం ఉంది.
- తరచుగా జరిగే 'charge-and-refund' పద్ధతులను కార్డ్ నెట్వర్క్లు అధిక రిస్క్గా పరిగణిస్తాయి.
దీనికి పరిష్కారం 'authorize and capture' మోడల్ను ఉపయోగించడం.
చాలా ట్యుటోరియల్స్ డబ్బును వెంటనే క్యాప్చర్ (capture) చేయాలని చెబుతాయి. దానికి బదులుగా, మీరు మొదట నిధులను 'hold' చేయాలి. 'Hold' అనేది డబ్బును బదిలీ చేయకుండా కార్డుపైనే ఉంచుతుంది. ఒకవేళ మీ వాలిడేషన్ విఫలమైతే, మీరు కేవలం ఆ హోల్డ్ను రద్దు చేస్తే సరిపోతుంది. దీనివల్ల కస్టమర్ స్టేట్మెంట్లో ఎలాంటి చార్జ్ కనిపించదు.
Stripeలో, capture_methodను manualగా సెట్ చేయడం ద్వారా మీరు దీనిని చేయవచ్చు.
కొత్త విధానం ఇలా పనిచేస్తుంది:
manual captureతో ఒకPaymentIntentను సృష్టించండి.- నిధులు ఆథరైజ్ (authorized) చేయబడతాయి కానీ బదిలీ చేయబడవు.
- మీ ఆర్డర్ వాలిడేషన్ను నిర్వహించండి.
- ఆర్డర్ సరైనదైతే, పేమెంట్ను క్యాప్చర్ చేయండి.
- ఆర్డర్ విఫలమైతే, ఆ
intentను రద్దు చేయండి.
ఈ విధానం వల్ల అనేక ప్రయోజనాలు ఉన్నాయి:
- మీరు రీఫండ్ చేయాల్సిన అవసరం ఉండదు.
- రద్దు చేయబడిన ఆథరైజేషన్ కస్టమర్ స్టేట్మెంట్ నుండి నేరుగా మాయమవుతుంది.
- మీరు పార్షియల్ క్యాప్చర్స్ (partial captures) చేయవచ్చు. ఒక కస్టమర్ మూడు వస్తువులను కొనుగోలు చేసినా, అందులో ఒకటి స్టాక్ లేకపోతే, మీరు కేవలం ఆ రెండు వస్తువుల మొత్తాన్ని మాత్రమే క్యాప్చర్ చేయవచ్చు.
- మీ లాగ్స్లో స్పష్టమైన ఆడిట్ ట్రయల్ (audit trail) ఉంటుంది.
చాలా ప్రముఖ పేమెంట్ ప్రొవైడర్లు ఇదే లాజిక్ను ఉపయోగిస్తారు.
- Stripe
capture_method: manualను ఉపయోగిస్తుంది. - Adyen మాన్యువల్ క్యాప్చర్ డిలేస్ను ఉపయోగిస్తుంది.
- Braintree
submitForSettlement: falseను ఉపయోగిస్తుంది. - PayPal
intent: AUTHORIZEను ఉపయోగిస్తుంది.
కస్టమర్ 'pay' బటన్ నొక్కిన తర్వాత మీ బిజినెస్ లాజిక్లో ఏదైనా భాగం విఫలమయ్యే అవకాశం ఉంటే, ఈ పద్ధతిని ఉపయోగించండి. మీ రిస్క్ ఉన్న తనిఖీలను ఆథరైజేషన్ మరియు క్యాప్చర్ మధ్యలో ఉంచండి. ఇది మీ నగదు లావాదేవీలను స్పష్టంగా ఉంచుతుంది మరియు మీ కస్టమర్లను సంతోషంగా ఉంచుతుంది.
Source: https://dev.to/jguillaumesio/stop-refunding-payments-you-should-never-have-charged-4d7m