شاید برای خیلی از توسع دهندگان وب و برنامه نویسان کسب کارهای الکترونیکی در زمینه وب اپلیکیشن های موبایل که از پرداخت آنلاین در سیستم خود استفاده می کنند، این سوال پیش بیاد که چطور متوجه شویم ،شماره کارت یا شماره شبایی که کاربران وارد می کنند معتبر است یا خیر. حتی زمانی که بخواهید از کاربران شماره شبا بگیرید، این امر ممکن است برای کاربران شما به منظور پیدا کردن شماره شبای خود سخت باشد(رفتن به بانک یا جستجو در وب سایت های بانکی و غیره). در حالی که تنها با داشتن یک شماره حساب از کاربران، میتوانید این اطلاعات را بدست آورده یا عملیات اعتبارسنجی را انجام دهید.
ما در این مقاله قرار است با استفاده از وب فریمورک قدرتمند جنگو به معرفی پکیجی بپردازیم که بتوانید این مسائل را به راحتی و درچند ثانیه رفع کنید، بدون اینکه برای حل این مسائل نیاز به ارجاع به سایت های مختلف و مشکلات آن داشته باشید، که این اعتبارات را بسنجند یا شماره حساب را به شماره شبا تبدیل کنند. جلوتر با وارد کردن چند خط کد در بک اند خود خواهید توانست این مسائل را به راحتی هرچه تمام تر بررسی کنید.
موارد استفاده:
1.مورد استفاده در اپلیکیشن ها پرداخت انلاین برای اعتبارسنجی کارت بانکی کاربر مورد نظر.
2.مورد استفاده در سایت های پرداخت انلاین برای اعتبارسنجی کارت بانکی کاربر مورد نظر.
3.تبدیل شماره حساب کاربر به شماره شبا.
4.مورد استفاده در سایت هایی با کاربری بین المللی برای اعتبارسنجی شماره شبا.
و اما پکیجی که قرار است از آن استفاده کنیم
az-iranian-bank-intro
برای شروع کار لازم است این پکیج رو با استفاده از دستور زیر نصب کنید.
pip install az-iranian-bank-intro
برای اعتبار سنجی کارت های بانکی کافی است متد اعتبار سنجی را ایمپورت کنیم و شماره کارت مورد نظر را به آن پاس دهیم. در صورتی که شماره کارت مورد نظر معتبر باشد برنامه به کار خود ادامه خواهد داد و در صورتی که نا معتبر باشد exception ارسال خواهد شد.
import logging from azbankintro import card_validate, CardValidationException try: card_validate('6280992042433333') logging.debug('bank card is valid') except CardValidationException: logging.debug('bank card is not valid')
برای اعتبار سنجی شماره IBAN کافی است متد اعتبار سنجی را ایمپورت کنیم و شماره IBAN مورد نظر را به آن پاس دهیم. در صورتی که شماره مورد نظر معتبر باشد برنامه به کار خود ادامه خواهد داد و در صورتی که نا معتبر باشد exception ارسال خواهد شد.
import logging from azbankintro import iban_validate, IBANValidationException try: iban_validate('IR062960000000100324200001') logging.debug('IBAN is valid') except IBANValidationException: logging.debug('IBAN is not valid')
در صورتی که تمایل دارید شماره حساب بانک مورد را تبدیل به شماره شبا کنید می توانید از ساختار زیر استفاده کنید.
from azbankintro import * IBAN.calculate_iban(BankEnum.MELLI_BANK, '0338404829005')
در صورتی که نوع بانک مد نظر را ندارید و فقط رشته آن را دارید می توانید از کد زیر جهت دریافت بانک استفاده کنید.
from azbankintro import * s = 'BMI' bank_type = BankEnum(s) IBAN.calculate_iban(bank_type, '0338404829005')
در صورتی که یک instance از نوع IBAN دارید نیز می توانید عملیات اعتبار سنجی را به گونه زیر انجام دهید.
from azbankintro import * s = 'BMI' bank_type = BankEnum(s) iban = IBAN.calculate_iban(bank_type, '0338404829005') iban.validate()
می توانید از فرمتر نیز استفاده کنید.
from azbankintro import * iban = IBAN.calculate_iban(BankEnum.MELLI_BANK, '0338404829005') print(iban.__str__()) print(iban.format('-')) print(iban.format(' ')) """ IR040170000000338404829005 IR04-0170-0000-0033-8404-8290-05 IR04 0170 0000 0033 8404 8290 05 """