ملی ای‌پی‌آی

تبدیل کارت به حساب خطا می‌دهد؟ معنای شش حالت و پیام درست برای هرکدام

تبدیل کارت به حساب شش حالت شناخته‌شدهٔ خطا دارد و هرکدام اقدام متفاوتی از کاربر یا شما می‌خواهد؛ همه را یک پیام عمومی نکنید.

«کارت پیدا نشد» و «کارت غیرفعال» دو جملهٔ مختلف‌اند، و اگر هر دو را با «خطا در استعلام» به کاربر نشان بدهید، یکی از آن‌ها را به پشتیبانی می‌فرستید که نباید می‌رفت.

سرویس تبدیل کارت به حساب هفت پاسخ ممکن دارد: یک موفق و شش حالت شناخته‌شده که هیچ‌کدام خرابی سرور نیستند. هر حالت یک جملهٔ مشخص از وضعیت کارت یا حساب است و پیام درست به کاربر، اقدام درست بعدی را هم نشان می‌دهد. این نوشته آن شش حالت را یکی‌یکی می‌گیرد: چه معنایی دارند، چه کسی باید کاری بکند، و چه چیزی را نباید به کاربر بگویید. اگر هنوز با خودِ سرویس آشنا نیستید، تبدیل کارت به حساب را ببینید.

شش حالت در یک نگاه

حالتیعنی چهچه کسی باید اقدام کند
شماره کارت نامعتبرارقام درست نیستندکاربر، دوباره تایپ کند
کارت پیدا نشدشماره ساختاری درست است ولی کارتی با آن ثبت نیستکاربر، شماره را از روی کارت دوباره بخواند
کارت منقضیتاریخ کارت گذشتهکاربر، کارت جدید بگیرد
کارت غیرفعالکارت هست ولی روشن نیستکاربر با بانکش
حساب غیرفعالکارت به حسابی بسته یا مسدود وصل استکاربر با بانکش
کارت مفقودیکارت به‌عنوان گم‌شده اعلام شدهشما، پیش از هر چیز دیگر

هر ردیف را جدا ببینیم.

نامعتبر، تقریباً همیشه غلط تایپی

اگر شماره از الگوریتم کنترلی کارت رد شود، اصلاً نباید به سرویس برسد. این بررسی محلی و بدون هزینه است و بیشتر غلط‌های تایپی را می‌گیرد. اگر با وجود این پاسخ «نامعتبر» از مرجع برگشت، یعنی شماره از بررسی ساختاری شما گذشته ولی مرجع آن را نپذیرفته؛ مثلاً شماره‌ای که از نظر ریاضی درست است ولی بانک صادرکننده‌اش ناشناخته است.

پیام به کاربر: «شماره کارت را دوباره بررسی کنید.» چیز دیگری لازم نیست.

پیدا نشد با غیرفعال فرق دارد

«پیدا نشد» یعنی این شماره در سامانهٔ مرجع کارتی ندارد. دلیل‌های محتمل: شماره اشتباه است (ولی خوش‌شانس بوده و کنترل را رد کرده)، یا کارت از آن کارت‌هایی است که اصلاً روی شبکه‌ای که این استعلام می‌پرسد نیست. در پیام به کاربر، لحنتان «شماره را با کارت مقایسه کنید» باشد.

«غیرفعال» ولی یعنی کارت هست و شناخته شده، فقط روشن نیست. مثلاً هنوز تحویل یا فعال نشده. این برای کاربر مفیدتر است: می‌داند مشکل از تایپش نیست و باید با بانک تماس بگیرد. اگر هر دو را «کارت نامعتبر» نشان بدهید، کاربر بی‌دلیل بارها شماره را دوباره تایپ می‌کند.

منقضی: سه ماه تعطیلی یک فرم

کارت منقضی دقیقاً آن حالتی است که در فرم‌های ثبت‌نام بیشترین اصطکاک را می‌سازد، چون کاربر معمولاً کارت قدیمی در کیفش است و فکر می‌کند همان را باید بدهد. پیام روشن بنویسید: «این کارت منقضی شده، کارت جدیدتان را وارد کنید». اگر جریان کار شما اجازه می‌دهد، راه دیگری هم پیش پایش بگذارید، مثلاً وارد کردن شماره شبا یا حساب.

حساب غیرفعال: کارت درست، مقصد خراب

اینجا کارت شناخته شده و مشکل از حسابی است که به آن وصل است. این برای کسب‌وکار شما مهم‌ترین حالت در تسویه است، چون کارت ظاهراً «سالم» است ولی واریز به آن نمی‌نشیند. پاسخ عملی: این کارت را برای تسویه نپذیرید و از کاربر یک روش دیگر بخواهید. آنچه به او می‌گویید باید «حساب متصل به این کارت فعال نیست» باشد، نه اینکه کارتش مشکل دارد.

مفقودی: این یکی را به کاربر نشان ندهید

شش حالت را به یک شکل نشان نمی‌دهند. سه تای اول (نامعتبر، پیدا نشد، منقضی) چیزهایی‌اند که صاحب کارت واقعی هم ممکن است با آن روبه‌رو شود. مفقودی فرق دارد: کسی که کارتی را گم‌شده اعلام شده وارد می‌کند، یا صاحب واقعی است که هنوز خبر ندارد، یا کسی است که کارت را در دست دارد و نباید. شما نمی‌دانید کدام.

به نظر من پیام درست این است که به خود کاربر پیام عمومی بدهید، مثلاً «این کارت قابل استفاده نیست، از کارت دیگری استفاده کنید»، و رویداد را در گزارش داخلی با پرچم جدا ثبت کنید تا تیم ریسک ببیند. وارد کردن چندباره کارت‌های مفقودی از یک حساب کاربری، خودش نشانه‌ای است که ارزش دیدن دارد.

یک نقشه از حالت به رفتار

در کد، این جدول را به‌صورت یک نگاشت صریح بنویسید و هیچ حالتی را در default نیندازید:

ts const userMessage = { invalid_card: 'شماره کارت را دوباره بررسی کنید.', card_not_found: 'کارتی با این شماره پیدا نشد.', card_expired: 'این کارت منقضی شده است.', card_inactive: 'این کارت هنوز فعال نشده است.', account_inactive: 'حساب متصل به این کارت فعال نیست.', card_lost: 'این کارت قابل استفاده نیست.', // + پرچم داخلی };

نام‌های کلیدها در اینجا نمونه‌اند؛ کد خطای دقیق را از مستندات بگیرید.

آنچه این سرویس نمی‌گوید

این پاسخ‌ها وضعیت کارت را در لحظهٔ پرسش نشان می‌دهند، نه تاریخچه. کارتی که امروز «فعال» است ممکن است فردا مفقود اعلام شود، پس نتیجه را همیشه معتبر فرض نکنید و پیش از واریز بزرگ دوباره بپرسید. همچنین موجودی و گردش حساب در پاسخ نیست.

یک نمونه از جریان واقعی

فرض کنید در فرم تسویه، فروشنده شماره کارتی را وارد می‌کند و پاسخ «حساب غیرفعال» می‌آید. اگر پیام «خطا در استعلام» باشد، فروشنده با پشتیبانی تماس می‌گیرد، پشتیبانی چیزی برای بررسی ندارد (خطا از کارت نیست، از حساب است)، و بعد از دو ساعت فروشنده کارت دیگری می‌دهد. اگر پیام «حساب متصل به این کارت فعال نیست؛ کارت دیگری وارد کنید» باشد، همان لحظه کارت دیگر را می‌دهد. هیچ تماسی در کار نیست.

همین حساب را برای تیم پشتیبانی هم بکنید: در پنل داخلی، نتیجهٔ استعلام را با برچسب مشخص نشان بدهید (نه فقط «ناموفق»)، تا اگر کاربر تماس گرفت، پشتیبان بداند با کدام حالت طرف است.

وقتی هر دو، کارت و حساب، مشکل دارند

گاهی کاربر کارتی را می‌دهد که هم منقضی است و هم حسابش مشکل دارد. سرویس یک حالت برمی‌گرداند، نه دو. اگر کاربر کارت را عوض کند و حالت تازه‌ای برگردد، این طبیعی است؛ پیام را برای هر مرحله جدا بنویسید و کاربر را با «بالاخره چه مشکلی دارد؟» گیج نکنید.

آمار خطا را چطور بخوانید

اگر داشبوردی از استعلام‌ها دارید، شش حالت را جدا شمارش کنید. نسبت «نامعتبر» به کل، کیفیت فرم شما را نشان می‌دهد (اگر زیاد است، الگوریتم کنترلی را پیش از ارسال فراموش کرده‌اید). نسبت «پیدا نشد»، چیز دیگری می‌گوید: بخشی از کاربران شماره‌ای می‌دهند که روی این شبکه نیست. و «مفقودی» نباید در هیچ داشبوردی عمومی دیده شود؛ فقط تیم ریسک آن را ببیند.

برای جزئیات هزینهٔ هر نتیجه، تعرفه مرجع است، و برای ورودی و خروجی، مستندات. اگر هنوز سرویس را نشناخته‌اید، صفحهٔ API تبدیل کارت به حساب توضیح می‌دهد چه چیزی برمی‌گرداند.

خلاصه برای مرور بعدی

  • شماره را پیش از ارسال با الگوریتم کنترلی بسنجید.
  • شش حالت را یکی‌یکی به شش پیام برسانید، بدون پیام عمومی «خطا».
  • مفقودی را به کاربر مثل خطای عادی نشان ندهید و جداگانه ثبت کنید.
  • نتیجه را بلندمدت کش نکنید؛ وضعیت کارت عوض می‌شود.
آخرین بازبینی: تیم تحریریه ملی ای‌پی‌آی

وب‌سرویس مرتبط با این راهنما

API تبدیل کارت به حساب

شماره حساب متصل به یک کارت بانکی.

مشاهده مشخصات فنی و تعرفه

راهنماهای مرتبط

پرسش و تجربه کاربران

اگر این راهنما جوابتان را نداد، همین‌جا بپرسید. پرسش‌ها را تیمملی ای‌پی‌آی پاسخ می‌دهد و هر نظر پیش از انتشار بررسی می‌شود.

هنوز پرسشی ثبت نشده، اولین نفر باشید.