بازپرداخت، برنامه تسویه و جلوگیری از تکرار
بانک، کیف پول، چندمسیره، استعلام provider و مغایرت مالی
بازپرداخت حرفهای: تصمیم، برنامه تسویه، روش بازگشت پول، کنترل تکرار و پایان واقعی
«درخواست بازپرداخت» به معنی «پول به حساب مشتری نشست» نیست. در سورس آناما برنامه ReturnRefundPlan، ردیفهای تسویه ReturnRefundSettlement و مسیرهای تأیید، شروع، هماهنگسازی نتیجه، شکست و بازیابی وجود دارد. این مراحل برای جلوگیری از بازپرداخت دوباره و حفظ ارتباط میان مرجوعی، مبلغ و ابزار پرداخت جدا شدهاند.
پنج مفهوم را از هم جدا کنیم
مبلغ قابل بازپرداخت: سقف محاسبهشده براساس اقلام، مقدار، قیمت تاریخی و کسرهایی که قواعد تجاری مجاز میدانند. برنامه بازپرداخت: تصمیم اینکه از چه مسیر یا مسیرهایی پول بازگردد. تأیید: مجوز شروع؛ هنوز انتقال پول نیست. شروع عملیات: درخواست به کیف پول، بانک یا provider و ایجاد رکورد پیگیری. تسویه نهایی: ثبت نتیجه قابل استناد از provider یا مسیر مالی. آخرین مفهوم را با ثبت درخواست اولیه یکی نگیرید.
روشهای بازپرداخت در مدل
| روش | کاربرد | کنترل حیاتی |
|---|---|---|
wallet | اعتبار بازگشتی به کیف پول | اعتبار تخصیصیافته با برداشت بانکی فرق دارد |
bank_transfer | برگشت از حساب بانکی به ذینفع | مقصد وجه باید معتبر و متعلق به گیرنده مجاز باشد |
digipay | بازپرداخت از provider مربوط | نتیجه نهایی/استعلام provider لازم است |
mixed_tender | تقسیم مبلغ میان چند ابزار | جمع سهمها نباید از مبلغ مجاز بیشتر شود |
b2b_credit_note | بستانکاری خرید سازمانی | کاهش طلب و سند مربوط با پرداخت نقدی یکی نیست |
اصل حیاتی: ظرفیت بازپرداخت
اگر سفارش ۵ میلیون تومان پرداخت موفق داشته و قبلاً ۲ میلیون به مشتری برگشته، پرداخت مجدد ۴ میلیون میتواند سقف مجاز را بشکند. محاسبه باید پروندههای بازپرداخت، برگشت پرداخت درگاه، اختلاف مالی و تخصیص مبالغ را ببیند. در کد کنترل همپوشانی refund و dispute دیده میشود؛ با این وجود اپراتور باید قبل از کلیک آخرین وضعیت تمام مسیرهای بازگرداندن وجه را بخواند. برچسب «Pending» روی یکی از آنها مجوز پرداخت دوم نیست.
جریان بررسی پرونده
۱. ردیف مرجوعی و مقدار مجاز را پیدا کنید. ۲. بررسی کنید واقعاً کالا دریافت شده و شرایط مالی برقرار است یا نه. ۳. مبلغ قابل بازپرداخت و سهم تخفیف/هزینه را با سند خرید اصلی مقایسه کنید. ۴. وضعیت پرداخت اولیه و ابزار تسویه را بخوانید. ۵. برنامه روش یا روشهای بازپرداخت را آماده کنید. ۶. تأییدهای لازم را بگیرید. ۷. عملیات را آغاز و مرجع را ذخیره کنید. ۸. نتیجه پرداخت نهایی/شکست/استعلام را ثبت کنید. ۹. پرونده مرجوعی و صورتحساب مشتری را با آن تطبیق دهید.
مثال چندمسیره
مشتری هنگام خرید ۷۰۰ هزار تومان از کیف پول و ۱٫۳ میلیون از درگاه پرداخت کرده است. کالا بازگشته و مبلغ مجاز برای بازگشت ۱٫۲ میلیون تومان است. روش نهایی نباید از روی «بزرگترین پرداخت» حدس زده شود؛ باید براساس سیاست بازگشت به منبع وجه و محدودیت ابزارهای پرداخت، سهم هر leg تعیین شود. اگر بخشی از مسیر پرداخت موفق و بخش دیگر ناموفق شد، نتیجه کل برنامه را نباید موفق یا ناموفق مطلق اعلام کرد؛ جزئیات هر leg مهم است.
بانک و شناسه مقصد
برای واریز بانکی، شماره شبا باید در قالب معتبر نگهداری و طبق کنترل مجاز به ذینفع متصل شود. نام یا شماره کارت ادعایی بدون احراز، مبنای تغییر مقصد وجه نیست. داده مقصد و مدارک هویتی نباید در یادداشت آزاد در معرض همه کارکنان باشد. پس از آغاز انتقال، تا رسیدن تأیید واقعی بانک، عبارت «واریز شد» به مشتری نگویید.
پرونده شکست یا بازگشت ناموفق
اگر provider خطا داد، شناسه درخواست، وضعیت نتیجه و امکان استعلام را ثبت کنید. retry بدون بررسی idempotency و نتیجه درخواست قبلی ممکن است دو بار پول خارج کند. برای شکست قطعی، فرآیند بازیابی/مسیر جایگزین رسمی لازم است؛ ایجاد مستقیم یک پرداخت بانکی دیگر در بیرون از پرونده بازپرداخت گزارشها را ناسازگار میکند.
عیبیابی اختلاف عدد
جمع مبلغ ردیف برگشتی، سهم تخفیف، مبلغی که قبلاً بازگشته، واریزهای موفق، تراکنشهای برگشتی و dispute را کنار هم بگذارید. «پول قابل بازگشت» با «پول بازگرداندهشده تا امروز» فرق دارد. وقتی همه legها تأیید شدند، مانده دریافتنی/پرداختنی و اثر مالی را با حساب اشخاص تطبیق دهید.
مرتبط: مرجوعی، اختلاف پرداخت، اتصال مالی سفارش.