𝗦𝘁𝗼𝗽 𝗥𝗲𝗳𝘂𝗻𝗱𝗶𝗻𝗴 𝗣𝗮𝘆𝗺𝗲𝗻𝘁𝘀 𝗬𝗼𝘂 𝗦𝗵𝗼𝘂𝗹𝗱 𝗡𝗲𝘃𝗲𝗿 𝗛𝗮𝘃𝗲 𝗖𝗵𝗮𝗿𝗴𝗲𝗱
अनेक डेव्हलपर्स असा चेकआउट फ्लो (checkout flow) तयार करतात जो कार्डवरून लगेच पैसे कापतो. त्यानंतर, ते स्टॉक तपासणी किंवा फ्रॉड तपासणीसारखी ऑर्डर व्हॅलिडेशन (order validation) प्रक्रिया राबवतात.
जर व्हॅलिडेशन अयशस्वी झाले, तर कोड रिफंड (refund) जारी करतो.
यामुळे तुमच्या ग्राहकांसाठी समस्या निर्माण होतात. त्यांना आधी पैसे कापले गेल्याचे दिसते आणि काही दिवसांनी रिफंड दिसते. त्यांना वाटते की तुमची कंपनी विश्वासार्ह नाही. त्यांना वाटते की त्यांचे पैसे अडकले आहेत.
रिफंडचे वास्तविक खर्च/तोटे आहेत:
- ग्राहकांना दोन वेगळे व्यवहार दिसल्यामुळे त्यांचा विश्वास कमी होतो.
- बँक स्टेटमेंटमध्ये रिफंड दिसण्यासाठी ५ ते १० दिवस लागतात.
- ट्रान्झॅक्शन फी किंवा चलन विनिमय दरामुळे (currency exchange rates) तुमचे नुकसान होऊ शकते.
- कार्ड नेटवर्क्स वारंवार होणारे 'चार्ज-अँड-रिफंड' पॅटर्न हाय रिस्क (high risk) म्हणून चिन्हांकित करतात.
याचे समाधान 'authorize and capture' मॉडेल वापरण्यात आहे.
बहुतेक ट्युटोरियल्स तुम्हाला लगेच पैसे कॅप्चर (capture) करायला शिकवतात. त्याऐवजी, तुम्ही प्रथम निधीवर 'होल्ड' (hold) ठेवला पाहिजे. होल्डमुळे पैसे हलवल्याशिवाय ते कार्डवर थांबलेले राहतात. जर तुमचे व्हॅलिडेशन अयशस्वी झाले, तर तुम्ही फक्त तो होल्ड रद्द करू शकता. यामुळे ग्राहकाच्या स्टेटमेंटवर कोणताही चार्ज दिसत नाही.
Stripe मध्ये, तुम्ही capture_method 'manual' सेट करून हे करू शकता.
नवीन फ्लो असा काम करतो:
- मॅन्युअल कॅप्चरसह
PaymentIntentतयार करा. - निधीला ऑथोराईज (authorize) केले जाते पण तो हलवला जात नाही.
- तुमची ऑर्डर व्हॅलिडेशन प्रक्रिया राबवा.
- जर ऑर्डर वैध असेल, तर पेमेंट कॅप्चर करा.
- जर ऑर्डर अयशस्वी झाली, तर 'intent' रद्द करा.
या दृष्टिकोनाचे अनेक फायदे आहेत:
- तुम्हाला रिफंडची गरज भासत नाही.
- रद्द केलेले ऑथोरायझेशन ग्राहकाच्या स्टेटमेंटमधून सहज गायब होते.
- तुम्ही पार्शिअल कॅप्चर (partial captures) करू शकता. जर ग्राहकाने तीन वस्तू खरेदी केल्या पण एक स्टॉकमध्ये नसेल, तर तुम्ही फक्त दोन वस्तूंसाठीची रक्कम कॅप्चर करू शकता.
- तुम्ही तुमच्या लॉग्समध्ये एक स्वच्छ ऑडिट ट्रेल (audit trail) तयार करता.
बहुतेक प्रमुख पेमेंट प्रोव्हायडर्स याच लॉजिकचा वापर करतात.
- Stripe
capture_method: manualवापरते. - Adyen मॅन्युअल कॅप्चर डिले (manual capture delays) वापरते.
- Braintree
submitForSettlement: falseवापरते. - PayPal
intent: AUTHORIZEवापरते.
जर ग्राहकाने 'pay' बटण दाबल्यानंतर तुमच्या बिझनेस लॉजिकचा कोणताही भाग अयशस्वी होऊ शकत असेल, तर ही पद्धत वापरा. तुमचे जोखमीचे चेक (risky checks) ऑथोरायझेशन आणि कॅप्चरच्या दरम्यान हलवा. यामुळे तुमचे पैशांचे व्यवहार स्वच्छ राहतील आणि तुमचे ग्राहक आनंदी राहतील.
Source: https://dev.to/jguillaumesio/stop-refunding-payments-you-should-never-have-charged-4d7m