𝗦𝘁𝗼𝗽 𝗥𝗲𝗳𝘂𝗻𝗱𝗶𝗻𝗴 𝗣𝗮𝘆𝗺𝗲𝗻𝘁𝘀 𝗬𝗼𝘂 𝗦𝗵𝗼𝘂𝗹𝗱 𝗡𝗲𝘃𝗲𝗿 𝗛𝗮𝘃𝗲 𝗖𝗵𝗮𝗿𝗴𝗲𝗱
ಅನೇಕ ಡೆವಲಪರ್ಗಳು ಕಾರ್ಡ್ನಿಂದ ತಕ್ಷಣವೇ ಹಣವನ್ನು ವಿಧಿಸುವ ಚೆಕ್ಔಟ್ ಫ್ಲೋ ಅನ್ನು ಬಳಸುತ್ತಾರೆ. ನಂತರ, ಅವರು ಸ್ಟಾಕ್ ಪರಿಶೀಲನೆ ಅಥವಾ ವಂಚನೆ ತಡೆಗಟ್ಟುವಿಕೆಯಂತಹ (fraud checks) ಆರ್ಡರ್ ವ್ಯಾಲಿಡೇಶನ್ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ನಡೆಸುತ್ತಾರೆ.
ಒಂದು ವೇಳೆ ವ್ಯಾಲಿಡೇಶನ್ ವಿಫಲವಾದರೆ, ಕೋಡ್ ಮರುಪಾವತಿಯನ್ನು (refund) ನೀಡುತ್ತದೆ.
ಇದು ನಿಮ್ಮ ಗ್ರಾಹಕರಿಗೆ ಸಮಸ್ಯೆಗಳನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ. ಅವರು ಮೊದಲು ಹಣ ಕಡಿತಗೊಂಡಿರುವುದನ್ನು ಮತ್ತು ನಂತರ ಕೆಲವು ದಿನಗಳ ನಂತರ ಮರುಪಾವತಿಯನ್ನು ನೋಡುತ್ತಾರೆ. ಇದರಿಂದ ನಿಮ್ಮ ಕಂಪನಿಯು ನಂಬಿಕೆಗೆ ಅರ್ಹವಲ್ಲ ಎಂದು ಅವರು ಭಾವಿಸುತ್ತಾರೆ. ತಮ್ಮ ಹಣ ಎಲ್ಲೋ ಸಿಲುಕಿಕೊಂಡಿದೆ ಎಂದು ಅವರು ಅಂದುಕೊಳ್ಳುತ್ತಾರೆ.
ಮರುಪಾವತಿಗಳು (Refunds) ನೈಜ ವೆಚ್ಚಗಳನ್ನು ಹೊಂದಿರುತ್ತವೆ:
- ಗ್ರಾಹಕರು ಎರಡು ಪ್ರತ್ಯೇಕ ವಹಿವಾಟುಗಳನ್ನು ನೋಡಿದಾಗ ನಂಬಿಕೆಯನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತಾರೆ.
- ಬ್ಯಾಂಕ್ ಸ್ಟೇಟ್ಮೆಂಟ್ನಲ್ಲಿ ಮರುಪಾವತಿಗಳು ಕಾಣಿಸಿಕೊಳ್ಳಲು 5 ರಿಂದ 10 ದಿನಗಳು ಬೇಕಾಗುತ್ತವೆ.
- ವಹಿವಾಟಿನ ಶುಲ್ಕಗಳು ಅಥವಾ ಕರೆನ್ಸಿ ವಿನಿಮಯ ದರಗಳಿಂದಾಗಿ ನೀವು ಹಣವನ್ನು ಕಳೆದುಕೊಳ್ಳಬಹುದು.
- ಪದೇ ಪದೇ ಹಣ ವಿಧಿಸುವುದು ಮತ್ತು ಮರುಪಾವತಿ ಮಾಡುವ ಮಾದರಿಯನ್ನು ಕಾರ್ಡ್ ನೆಟ್ವರ್ಕ್ಗಳು ಹೆಚ್ಚಿನ ಅಪಾಯಕಾರಿ (high risk) ಎಂದು ಗುರುತಿಸುತ್ತವೆ.
ಇದಕ್ಕೆ ಪರಿಹಾರವೆಂದರೆ 'authorize' ಮತ್ತು 'capture' ಮಾಡೆಲ್ ಅನ್ನು ಬಳಸುವುದು.
ಹೆಚ್ಚಿನ ಟ್ಯುಟೋರಿಯಲ್ಗಳು ಹಣವನ್ನು ತಕ್ಷಣವೇ 'capture' ಮಾಡುವುದನ್ನು ಕಲಿಸುತ್ತವೆ. ಬದಲಾಗಿ, ನೀವು ಮೊದಲು ಹಣದ ಮೇಲೆ 'hold' ಅನ್ನು ಇಡಬೇಕು. 'Hold' ಎಂದರೆ ಹಣವನ್ನು ವರ್ಗಾಯಿಸದೆ ಕಾರ್ಡ್ನಲ್ಲಿ ಇರಿಸುವುದು ಎಂದರ್ಥ. ಒಂದು ವೇಳೆ ನಿಮ್ಮ ವ್ಯಾಲಿಡೇಶನ್ ವಿಫಲವಾದರೆ, ನೀವು ಕೇವಲ ಆ 'hold' ಅನ್ನು ರದ್ದುಗೊಳಿಸಬಹುದು. ಇದರಿಂದ ಗ್ರಾಹಕರ ಸ್ಟೇಟ್ಮೆಂಟ್ನಲ್ಲಿ ಯಾವುದೇ ಹಣ ಕಡಿತಗೊಂಡಂತೆ ಕಾಣಿಸುವುದಿಲ್ಲ.
Stripe ನಲ್ಲಿ, capture_method ಅನ್ನು manual ಎಂದು ಸೆಟ್ ಮಾಡುವ ಮೂಲಕ ನೀವು ಇದನ್ನು ಮಾಡಬಹುದು.
ಹೊಸ ಫ್ಲೋ ಈ ರೀತಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ:
manual captureನೊಂದಿಗೆPaymentIntentಅನ್ನು ರಚಿಸಿ.- ಹಣವು 'authorized' ಆಗಿರುತ್ತದೆ ಆದರೆ ವರ್ಗಾವಣೆಯಾಗುವುದಿಲ್ಲ.
- ನಿಮ್ಮ ಆರ್ಡರ್ ವ್ಯಾಲಿಡೇಶನ್ ಅನ್ನು ನಡೆಸಿ.
- ಆರ್ಡರ್ ಸರಿಯಾಗಿದ್ದರೆ, ಪಾವತಿಯನ್ನು 'capture' ಮಾಡಿ.
- ಆರ್ಡರ್ ವಿಫಲವಾದರೆ, 'intent' ಅನ್ನು ರದ್ದುಗೊಳಿಸಿ.
ಈ ವಿಧಾನವು ಹಲವಾರು ಪ್ರಯೋಜನಗಳನ್ನು ನೀಡುತ್ತದೆ:
- ನೀವು ಮರುಪಾವತಿಗಳ ಅಗತ್ಯವನ್ನು ತಪ್ಪಿಸಬಹುದು.
- ರದ್ದಾದ 'authorization' ಗ್ರಾಹಕರ ಸ್ಟೇಟ್ಮೆಂಟ್ನಿಂದ ಸುಲಭವಾಗಿ ಮಾಯವಾಗುತ್ತದೆ.
- ನೀವು 'partial captures' ಮಾಡಬಹುದು. ಉದಾಹರಣೆಗೆ, ಗ್ರಾಹಕರು ಮೂರು ವಸ್ತುಗಳನ್ನು ಖರೀದಿಸಿದರೆ ಆದರೆ ಅದರಲ್ಲಿ ಒಂದು ಸ್ಟಾಕ್ನಲ್ಲಿ ಇಲ್ಲದಿದ್ದರೆ, ನೀವು ಕೇವಲ ಆ ಎರಡು ವಸ್ತುಗಳಿಗೆ ಮಾತ್ರ ಹಣವನ್ನು 'capture' ಮಾಡಬಹುದು.
- ನಿಮ್ಮ ಲಾಗ್ಗಳಲ್ಲಿ (logs) ಸ್ಪಷ್ಟವಾದ ಆಡಿಟ್ ಟ್ರೈಲ್ ಅನ್ನು ನೀವು ರಚಿಸಬಹುದು.
ಹೆಚ್ಚಿನ ಪ್ರಮುಖ ಪಾವತಿ ಸೇವಾ ಪೂರೈಕೆದಾರರು ಇದೇ ತರ್ಕವನ್ನು ಬಳಸುತ್ತಾರೆ.
- Stripe
capture_method: manualಅನ್ನು ಬಳಸುತ್ತದೆ. - Adyen 'manual capture delays' ಅನ್ನು ಬಳಸುತ್ತದೆ.
- Braintree
submitForSettlement: falseಅನ್ನು ಬಳಸುತ್ತದೆ. - PayPal
intent: AUTHORIZEಅನ್ನು ಬಳಸುತ್ತದೆ.
ಗ್ರಾಹಕರು ಪಾವತಿ (pay) ಮಾಡಿದ ನಂತರ ನಿಮ್ಮ ವ್ಯವಹಾರದ ತರ್ಕದ (business logic) ಯಾವುದೇ ಭಾಗ ವಿಫಲವಾಗುವ ಸಾಧ್ಯತೆಯಿದ್ದರೆ ಈ ವಿಧಾನವನ್ನು ಬಳಸಿ. ನಿಮ್ಮ ಅಪಾಯಕಾರಿ ಪರಿಶೀಲನೆಗಳನ್ನು (risky checks) 'authorization' ಮತ್ತು 'capture' ನಡುವೆ ಇರಿಸಿ. ಇದು ನಿಮ್ಮ ಹಣದ ವರ್ಗಾವಣೆಯನ್ನು ಸುಗಮವಾಗಿರಿಸುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಗ್ರಾಹಕರನ್ನು ಸಂತೋಷವಾಗಿರಿಸುತ್ತದೆ.
Source: https://dev.to/jguillaumesio/stop-refunding-payments-you-should-never-have-charged-4d7m