ان ادائیگیوں کا ریفنڈ کرنا بند کریں جو آپ کو کبھی وصول ہی نہیں کرنی چاہیے تھیں

بہت سے ڈویلپرز ایسا چیک آؤٹ فلو (checkout flow) لانچ کرتے ہیں جو کارڈ سے فوری طور پر رقم کاٹ لیتا ہے۔ اس کے بعد، وہ اسٹاک چیک یا فراڈ چیک جیسی آرڈر کی تصدیق (validation) کرتے ہیں۔

اگر تصدیق ناکام ہو جائے، تو کوڈ ریفنڈ جاری کر دیتا ہے۔

یہ آپ کے صارفین کے لیے مسائل پیدا کرتا ہے۔ وہ پہلے رقم کٹتے ہوئے دیکھتے ہیں اور پھر کئی دنوں بعد ریفنڈ۔ انہیں لگتا ہے کہ آپ کی کمپنی ناقابلِ اعتماد ہے۔ انہیں لگتا ہے کہ ان کے پیسے پھنس گئے ہیں۔

ریفنڈز کے حقیقی اخراجات ہوتے ہیں:

اس کا حل 'authorize and capture' ماڈل کا استعمال کرنا ہے۔

زیادہ تر ٹیوٹوریلز آپ کو فوری طور پر رقم کیپچر (capture) کرنا سکھاتے ہیں۔ اس کے بجائے، آپ کو پہلے فنڈز پر 'ہولڈ' (hold) لگانا چاہیے۔ ہولڈ رقم کو منتقل کیے بغیر کارڈ پر موجود رہتا ہے۔ اگر آپ کی تصدیق ناکام ہو جائے، تو آپ صرف اس ہولڈ کو منسوخ کر دیتے ہیں۔ اس طرح کسٹمر کی اسٹیٹمنٹ میں کوئی چارج ظاہر نہیں ہوتا۔

Stripe میں، آپ capture_method کو manual پر سیٹ کر کے ایسا کر سکتے ہیں۔

نیا فلو اس طرح کام کرتا ہے:

  1. manual capture کے ساتھ ایک PaymentIntent بنائیں۔
  2. فنڈز کو authorize کر دیا جاتا ہے لیکن منتقل نہیں کیا جاتا۔
  3. اپنی آرڈر کی تصدیق (validation) کریں۔
  4. اگر آرڈر درست ہے، تو ادائیگی کیپچر (capture) کریں۔
  5. اگر آرڈر ناکام ہو جائے، تو intent کو منسوخ کر دیں۔

یہ طریقہ کئی فوائد فراہم کرتا ہے:

زیادہ تر بڑے پیمانے پر ادائیگی فراہم کرنے والے (payment providers) یہی منطق استعمال کرتے ہیں۔

اگر کسٹمر کے 'pay' بٹن دبانے کے بعد آپ کے بزنس لاجک کا کوئی بھی حصہ ناکام ہو سکتا ہے، تو اس طریقے کو استعمال کریں۔ اپنے پرخطر چیکس (risky checks) کو اتھارزیشن اور کیپچر کے درمیان رکھیں۔ اس سے آپ کی رقم کی نقل و حرکت شفاف رہے گی اور آپ کے صارفین بھی خوش رہیں گے۔

ماخذ: https://dev.to/jguillaumesio/stop-refunding-payments-you-should-never-have-charged-4d7m