کارت به حساب برای تسویه: چه چیزی را نگه دارید و چه چیزی را دور بریزید
کارت را فقط ورودی تبدیل بدانید: از خروجی همان مقصد و چهار رقم آخر را نگه دارید و شمارهٔ کامل کارت و نام ثبتشده را ذخیره نکنید.
در تسویه، شمارهٔ کارت را فقط برای یک کار میخواهید: رسیدن به حساب. بعد از آن، نگهداشتنش یک ریسک است بدون هیچ فایده.
کارتبهحساب یک ایده را ممکن میکند که بسیاری از فرمها هنوز جدی نگرفتهاند: کاربر شانزده رقم را یک بار میدهد، شما از آن شماره حساب، بانک و نام را میگیرید، و کارت را دور میریزید. این نوشته دربارهٔ همین تصمیم است: چه چیزی نگه دارید، چه چیزی را نه، و سرویس تبدیل کارت به حساب دقیقاً کجای این جریان مینشیند.
چرا کارت را نگه ندارید
کارت برای دریافت پول لازم نیست. برای دریافت پول، فقط مقصد لازم است: حساب یا شبا. شماره کارت بهعکس، دادهای است که در دست نادرست حساس است، حتی بدون رمز و CVV2. فرض کنید پایگاه دادهٔ یک مارکتپلیس لو برود. ردیفی با شماره کارت، نام و ایمیل برای فیشینگ مستقیم کافی است؛ ردیفی با فقط شبا و نام بانک، بسیار کمتر.
اصل کلی «کمترین داده» اینجا ساده میشود: هرچه برای ادامهٔ کار لازم نیست، نگه ندارید. این سرویس رمز و CVV2 و تاریخ انقضا را اصلاً نمیخواهد، پس چیزی از آن نمیماند که لازم باشد ذخیره شود.
چه چیزی را بعد از تبدیل نگه دارید
بسته به نیازتان، از این سه قلم بگیرید و بقیه را بیندازید:
- شماره حساب و نام بانک، برای ثبت مقصد. اگر مسیر واریزتان پایا است و شبا میخواهد، با تبدیل کارت به شبا هم به همان شبا میرسید؛ تفاوت دو سرویس را در پایین میبینید.
- نام صاحب کارت، برای تطبیق با نام ثبتشده در پروفایل کاربر. فقط تا لحظهٔ مقایسه لازم است. اگر مقایسه را همان لحظه انجام میدهید، نتیجه (مطابق یا نه) را نگه دارید، نه خود نام را.
- چهار رقم آخر کارت، فقط برای نمایش به کاربر («کارت منتهی به ۱۲۳۴»). برای تشخیص هویت کارت کافی است و حساس نیست.
شمارهٔ کامل کارت را در هیچیک از این سناریوها لازم ندارید.
کارت به حساب یا کارت به شبا؟
هر دو از یک ورودی میروند و هر دو نام صاحب کارت را میدهند. فرقشان در مقصد است.
| کارت به حساب | کارت به شبا | |
|---|---|---|
| خروجی اصلی | شماره حساب | شبا |
| به درد میخورد برای | حسابداری، فرمهایی که حساب میخواهند | پایا، ساتنا، واریز بانکی |
| نام بانک | میدهد | میدهد |
| نام صاحب | میدهد | میدهد |
اگر پرداختتان از مسیر شبا میرود، شبا را بگیرید. اگر سامانهٔ حسابداری یا فرم دیگری شماره حساب لازم دارد، این یکی را. دو بار پرسیدن برای هر دو، تقریباً همیشه اضافه است؛ از یکی بگیرید و دیگری را فقط وقتی لازم دارید.
تصمیم: نام برگشتی را کجا مصرف کنید
نام صاحب کارت در پاسخ هست، و دو راه برای مصرفش دارید.
مقایسه سمت شما. نام را با نام کاربر مقایسه میکنید. انعطاف کامل دارید ولی باید نام فارسی را یکدست کنید (حروف عربی و فارسی، نیمفاصله، ترتیب نام) و قاعدهٔ آستانه را خودتان بنویسید.
تطابق از سرویس جدا. اگر فقط جواب «این کارت به نام این فرد هست یا نه» را میخواهید، راهنمای تطابق کارت و نام نشان میدهد چه وقت آن سرویس بهجای این مناسبتر است.
یک نکتهٔ طراحی: اگر مقایسهای انجام میدهید، به کاربر هرگز نام ثبتشده در بانک را نشان ندهید. فقط بگویید «نام مطابقت ندارد». نمایش نام کامل صاحب یک کارت دلخواه، چیزی است که هر کسی با تایپ شانزده رقم میتواند به دست بیاورد.
کارتی که فقط ظاهراً سالم است
پاسخ موفق یعنی کارت شناخته شد و حساب دارد. اما درباره نوع کارت چیزی تضمین نمیشود: کارت هدیه یا کارت اعتباری ممکن است پاسخ معتبر بدهد در حالی که مقصد مناسبی برای تسویه نیست. اگر برای شما مهم است، قاعدهٔ خودتان را در جریان کار بگذارید، مثلاً با پرسیدن از فروشنده که این کارت را برای دریافت وجه اعلام میکند.
آنچه این سرویس نمیکند
- موجودی، گردش، و سقف برداشت را نمیدهد.
- هیچ تراکنشی انجام نمیدهد و پولی جابهجا نمیکند.
- هویت را احراز نمیکند: نام کارت، بهخودیخود ثابت نمیکند کسی که تایپ کرده صاحب آن است. برای آن به لایهٔ دیگری (کد ملی یا احراز هویت) نیاز دارید.
سناریوی فرضی: ثبتنام فروشنده در یک مارکتپلیس
تصور کنید فروشندهای برای دریافت وجه، فقط شماره کارتش را وارد میکند. جریان بهینه:
- شماره کارت با الگوریتم کنترلی سنجیده میشود.
- سرویس تبدیل کارت به حساب فراخوانی میشود.
- نتیجه به فروشنده نشان داده میشود: نام بانک و چهار رقم آخر حساب. نام کامل نه.
- از نتیجه فقط مقصد و وضعیت تأیید در پایگاه داده میماند.
- شماره کارت از حافظه و گزارشها پاک میشود، یا در گزارشها فقط چهار رقم آخر میماند.
نکته: مرحلهٔ ۳ و ۴ را جدا بگیرید. چیزی که به کاربر نشان میدهید با چیزی که ذخیره میکنید یکی نیست.
گزارشها و لاگها
اشتباه رایج، نگهداشتن شماره کارت در لاگ درخواست است، چون «برای عیبیابی لازم است». لاگها معمولاً دسترسی گستردهتر از پایگاه داده دارند و مدت بیشتری باقی میمانند. پیش از ثبت، فیلتر ماسک بگذارید که همه جا شماره را به چهار رقم آخر برساند. در بخش خطا هم همین کار را بکنید؛ پیام خطا نباید ورودی خام را تکرار کند.
اگر خروجی با ادعای کاربر نمیخواند
گاهی نام برگشتی با نام فروشنده یکی نیست. پیش از هر نتیجهگیری، یکدستسازی نام فارسی را اعمال کنید، چون بخش بزرگی از اختلافها فقط املاییاند. اگر باز هم یکی نبود، برای تصمیمگیری عدم تطابق همیشه تقلب نیست را ببینید.
وقتی فروشنده چند کارت دارد
بعضی فروشندهها بیش از یک کارت ثبت میکنند. برای هر کارت یک مقصد جدا بسازید و یکی را «پیشفرض تسویه» علامت بزنید. تغییر پیشفرض را مثل تغییر کارت، یک رویداد حساس بدانید: اگر حساب کاربری فروشنده به خطر افتاده باشد، اولین کاری که مهاجم میکند عوضکردن مقصد پول است. تأیید دوباره (مثلاً کد پیامکی) برای این تغییر، هزینهٔ کمی دارد و جلوی یک سناریوی پرهزینه را میگیرد.
پیشنهاد من
- کارت را ورودی بدانید، نه دادهای برای ذخیره.
- از خروجی فقط همان را نگه دارید که مسیر واریز شما میخواهد.
- برای نمایش به کاربر از چهار رقم آخر کارت استفاده کنید.
- نام ثبتشده در بانک را به کاربر نشان ندهید؛ فقط نتیجهٔ مقایسه را.
- هزینه و محدودیتهای دقیق را در تعرفه ببینید.
وبسرویس مرتبط با این راهنما
API تبدیل کارت به حساب
شماره حساب متصل به یک کارت بانکی.
راهنماهای مرتبط
پرسش و تجربه کاربران
اگر این راهنما جوابتان را نداد، همینجا بپرسید. پرسشها را تیمملی ایپیآی پاسخ میدهد و هر نظر پیش از انتشار بررسی میشود.
هنوز پرسشی ثبت نشده، اولین نفر باشید.
