API و وب سرویس تطابق کد ملی و کارت
بررسی میشود شمارهٔ کارت بانکی با کد ملی و تاریخ تولد واردشده به یک شخص تعلق دارد یا نه.
این سرویس چه میکند
پیش از آنکه صندوق سرمایهگذاری یا فروشگاه بزرگ مبلغی را به کارتی که مشتری وارد کرده واریز کند، یک سؤال باقی است: این کارت واقعاً مال همین شخص است؟ این استعلام سه مقدار میگیرد، کد ملی، تاریخ تولد شمسی و شمارهٔ شانزدهرقمی کارت، و در matched درست یا نادرست برمیگرداند.
بیشتر خطاهای این جریان از ورودی میآید، نه از خود تطبیق. تاریخ تولد در طراحی اولیهٔ بسیاری از فرمها نبود و اینجا اجباری است؛ بدون آن فراخوان اصلاً ارسال نمیشود.
ورودی کارت پیش از ارسال چه شکلی دارد
شمارهٔ کارت را از فاصله و خط تیره پاک کنید. اعتبارسنجی شانزده رقم و رقم کنترل را میسنجد؛ شمارهٔ تایپشده با یک رقم اشتباه همانجا با invalid_input برمیگردد و هزینهای ندارد. کارت را فقط از کاربر خود صاحب کارت بگیرید و آن را در لاگ ننویسید. رمز دوم و CVV2 هرگز لازم نیست و نباید جمع کنید.
کدام کارتهای درست منفی میدهند
کارتهایی که به نام شخص دیگری صادر شدهاند، مثل کارت همسر یا کارت هدیهٔ شرکتی، منفی میدهند. کارت تازهصادرشده یا مسدودشده هم ممکن است جواب غیرمنتظره بدهد. بهتر است کاربر دو بار فرصت داشته باشد و بعد به مسیر دستی هدایت شود.
با نتیجه چه کنیم
matched: true را کنار تاریخ و شناسهٔ پاسخ ذخیره کنید تا بعداً بتوانید برای واریز مستند کنید که بررسی شده بود. پاسخ تا چند روز از کش میآید و source.cached آن را میگوید؛ برای واریزهای بزرگ، بررسی تازهتری بخواهید.
آنچه این سرویس نمیکند
نام صاحب کارت، شمارهٔ شبا، شمارهٔ حساب و موجودی را برنمیگرداند. نمیگوید کارت فعال است یا مسدود. فقط تعلق کارت به همین کد ملی و تاریخ تولد را میسنجد.
کجا به کار میآید
- بازگشت وجه در فروشگاه اینترنتیفروشگاهی که مبلغ مرجوعی را به کارت مشتری برمیگرداند، پیش از واریز تعلق کارت به خریدار را میسنجد تا وجه به حساب دیگری نرود.
- پرداخت حقوق به نیروی پروژهایشرکت پیمانکاری که کارت اعلامی نیروها را جمع میکند، پیش از دور پرداخت میفهمد کدام کارت به نام خود فرد نیست.
- برداشت جایزه در اپلیکیشن بازیاپلیکیشنی که جایزهٔ نقدی میدهد، کارت مقصد را با کد ملی برنده میسنجد تا حسابهای چندگانه از یک کارت برداشت نکنند.
ورودی و خروجی
ورودی
nationalCodestringکد ملیده رقم، با رقم کنترل معتبر.birthDatestringتاریخ تولدتاریخ شمسی (نه میلادی): سال چهاررقمی، ماه و روز دورقمی. 1370/01/05، 1370-01-05 و 13700105 هر سه پذیرفته میشوند.cardNumberstringشمارهٔ کارتشانزده رقم، بی فاصله یا با فاصله.خروجی
matchedbooleanقیمت و شرط پرداخت
قیمت هر فراخوان API تطابق کد ملی و کارت ۳٬۲۰۰ تومان است.
| تعداد استعلام در ماه | قیمت هر استعلام |
|---|---|
| همهٔ فراخوانها | ۳٬۲۰۰ تومان |
آخرین تغییر قیمت:
مبلغ پیش از تماس با سرویس مرجع از موجودی پنل قفل میشود و اگر پاسخی نیاید، آزاد میشود. ورودی نامعتبر، در دسترس نبودن سرویس مرجع و عبور از سقف نرخ هزینهای ندارند. «رکوردی یافت نشد» یک پاسخ معتبر است و هزینه دارد.
کمترین مبلغ شارژ پنل: ۵۰۰٬۰۰۰ تومان
پرسشهای متداول
چطور بفهمیم کارت بانکی مال همین کد ملی است؟
کد ملی، تاریخ تولد شمسی و شمارهٔ شانزدهرقمی کارت را میفرستید و در فیلد matched درست یا نادرست میگیرید. نتیجهٔ درست یعنی کارت به همین شخص تعلق دارد.
آیا بدون تاریخ تولد هم کار میکند؟
نه. تاریخ تولد در این استعلام اجباری است و بدون آن فراخوان ارسال نمیشود. فرم خود را طوری بسازید که تاریخ تولد را هم بگیرد.
آیا نام صاحب کارت هم برمیگردد؟
نه. خروجی فقط matched است. اگر نام صاحب کارت لازم دارید، به سرویس تطبیق کارت با نام نگاه کنید که برای همین هدف است.
نتیجهٔ منفی یعنی کارت جعلی است؟
لزوماً نه. کارت همسر، والدین یا شرکت هم منفی میدهد. بهتر است کاربر را به مسیر تأیید دوم ببرید و بلافاصله رد نکنید.
آیا رمز دوم یا CVV2 لازم است؟
نه. ورودیها فقط کد ملی، تاریخ تولد و شمارهٔ کارتاند. هرگز رمز دوم یا CVV2 را از کاربر نخواهید و ذخیره نکنید.
اگر شمارهٔ کارت را با یک رقم اشتباه بفرستم چه میشود؟
اعتبارسنجی شانزدهرقمی بودن و رقم کنترل را میسنجد و خطای invalid_input میدهد. این خطا هزینه ندارد و فراخوانی هم به سرویس مرجع نمیرود.
پاسخ منفی هزینه دارد؟
بله. matched نادرست یک پاسخ معتبر است و هزینه دارد. خطای ورودی، موجودی ناکافی و در دسترس نبودن سرویس مرجع هزینهای ندارند.
آیا میتوان از روی کارت، شبا یا شمارهٔ حساب گرفت؟
نه. این استعلام فقط تعلق کارت را میسنجد و شماره حساب یا شبا برنمیگرداند. دریافت شبا از کارت یک کار جداست و تطبیق با کد ملی را جایگزین نمیکند.
