𝗦𝘁𝗼𝗽 𝗥𝗲𝗳𝘂𝗻𝗱𝗶𝗻𝗴 𝗣𝗮𝘆𝗺𝗲𝗻𝘁𝘀 𝗬𝗼𝘂 𝗦𝗵𝗼𝘂𝗹𝗱 𝗡𝗲𝘃𝗲𝗿 𝗛𝗮𝘃𝗲 𝗖𝗵𝗮𝗿𝗴𝗲𝗱

अनेक डेव्हलपर्स असा चेकआउट फ्लो (checkout flow) तयार करतात जो कार्डवरून लगेच पैसे कापतो. त्यानंतर, ते स्टॉक तपासणी किंवा फ्रॉड तपासणीसारखी ऑर्डर व्हॅलिडेशन (order validation) प्रक्रिया राबवतात.

जर व्हॅलिडेशन अयशस्वी झाले, तर कोड रिफंड (refund) जारी करतो.

यामुळे तुमच्या ग्राहकांसाठी समस्या निर्माण होतात. त्यांना आधी पैसे कापले गेल्याचे दिसते आणि काही दिवसांनी रिफंड दिसते. त्यांना वाटते की तुमची कंपनी विश्वासार्ह नाही. त्यांना वाटते की त्यांचे पैसे अडकले आहेत.

रिफंडचे वास्तविक खर्च/तोटे आहेत:

याचे समाधान 'authorize and capture' मॉडेल वापरण्यात आहे.

बहुतेक ट्युटोरियल्स तुम्हाला लगेच पैसे कॅप्चर (capture) करायला शिकवतात. त्याऐवजी, तुम्ही प्रथम निधीवर 'होल्ड' (hold) ठेवला पाहिजे. होल्डमुळे पैसे हलवल्याशिवाय ते कार्डवर थांबलेले राहतात. जर तुमचे व्हॅलिडेशन अयशस्वी झाले, तर तुम्ही फक्त तो होल्ड रद्द करू शकता. यामुळे ग्राहकाच्या स्टेटमेंटवर कोणताही चार्ज दिसत नाही.

Stripe मध्ये, तुम्ही capture_method 'manual' सेट करून हे करू शकता.

नवीन फ्लो असा काम करतो:

  1. मॅन्युअल कॅप्चरसह PaymentIntent तयार करा.
  2. निधीला ऑथोराईज (authorize) केले जाते पण तो हलवला जात नाही.
  3. तुमची ऑर्डर व्हॅलिडेशन प्रक्रिया राबवा.
  4. जर ऑर्डर वैध असेल, तर पेमेंट कॅप्चर करा.
  5. जर ऑर्डर अयशस्वी झाली, तर 'intent' रद्द करा.

या दृष्टिकोनाचे अनेक फायदे आहेत:

बहुतेक प्रमुख पेमेंट प्रोव्हायडर्स याच लॉजिकचा वापर करतात.

जर ग्राहकाने 'pay' बटण दाबल्यानंतर तुमच्या बिझनेस लॉजिकचा कोणताही भाग अयशस्वी होऊ शकत असेल, तर ही पद्धत वापरा. तुमचे जोखमीचे चेक (risky checks) ऑथोरायझेशन आणि कॅप्चरच्या दरम्यान हलवा. यामुळे तुमचे पैशांचे व्यवहार स्वच्छ राहतील आणि तुमचे ग्राहक आनंदी राहतील.

Source: https://dev.to/jguillaumesio/stop-refunding-payments-you-should-never-have-charged-4d7m