نمایش نتایج: از شماره 1 تا 6 , از مجموع 6

موضوع: تابع چک کردن کارت اعتباری و بانکی

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    عضو انجمن omid1991 آواتار ها
    تاریخ عضویت
    Jun 2013
    محل سکونت
    نمین
    نوشته ها
    217
    تشکر تشکر کرده 
    412
    تشکر تشکر شده 
    495
    تشکر شده در
    284 پست

    پیش فرض تابع چک کردن کارت اعتباری و بانکی

    سلام و عرض ادب خدمت بازدیدکنندگان محترم

    شاید بسیار برایتان پیش آمده باشد که در پروژه ای لازم هست که شماره کارت بانکی کاربر را دریافت کنید
    و شاید تا الان تنها اعتبارسنجی که انجام میدادید چک کردن 16رقمی بودن و فقط عدد بودن کارت بانکی بوده
    بنا به دلایلی لازم شد که واقعا صحت کارت بانکی کاربر را بوسیله الگوریتمی تشخیص دهیم

    خب بریم سراغ بررسی ساختار کارت های اعتباری و بانکی

    شماره روی کارت های اعتباری یا کارت های بانکی شماره ای است 16 رقمی که از سمت چپ رقم اول بیانگر نوع یا کاربرد کارت (برای کارت های بانکی و اعتباری این رقم می تواند 4 یا 5 یا 6 باشد ) و 5 رقم بعدی بیانگر شماره شناسایی صادر کننده کارت و ارقام 7 تا 15 بیانگر شماره حساب یا شماره منحصر به فرد در مرکز صادرکننده کارت و رقم آخر آن هم یک رقم کنترل است که از روی 15 رقم سمت چپ بدست می آید. برای بررسی کنترل کد کافی است مجدد از روی 15 رقم سمت چپ صحت رقم کنترل را محاسبه کنیم

    برای محاسبه رقم کنترل از روی سایر ارقام ، از سمت چپ و با شروع از موقعیت 1 تا موقعیت 16 ، ارقام موقعیت فرد را در 2 و ارقام موقعیت زوج را در یک ضرب می کنیم، اگر حاصل ضرب هر مرحله بیشتر از 9 شد 9 واحد از آن کم کنید تا یک رقمی شود و سپس اعداد حاصل را با هم جمع می کنیم.
    اگر عدد حاصل از اجرای مرحله یک بر 10 بخش پذیر باشد ، شماره کارت صحیح قلمداد می شود در غیر اینصورت شماره کارت صحیح نمی باشد

    منبع توضیحات ساختار کارت های اعتباری و بانکی : علی آرش
    منبع کد : کارگاه طراحی امیدتک

    کد PHP:
    function bankCardCheck($card=''$irCard=true)
    {
        
    $card = (string) preg_replace('/\D/','',$card);
        
    $strlen strlen($card);
        if(
    $irCard==true and $strlen!=16)
            return 
    false;
        if(
    $irCard!=true and ($strlen<13 or $strlen>19))
            return 
    false;
        if(!
    in_array($card[0],[2,4,5,6,9]))
            return 
    false;
        
        for(
    $i=0$i<$strlen$i++)
        {
            
    $res[$i] = $card[$i];
            if((
    $strlen%2)==($i%2))
            {
                
    $res[$i] *= 2;
                if(
    $res[$i]>9)
                    
    $res[$i] -= 9;        
            }
        }
        return 
    array_sum($res)%10==0?true:false;    
    }


    $card '1111222233334444';
    if(
    bankCardCheck($card))
        echo 
    'ok';
    else
        echo 
    'err'

    ویرایش توسط omid1991 : September 14th, 2018 در ساعت 23:55 دلیل: بروز رسانی تابع

  2. تعداد تشکر ها ازomid1991 به دلیل پست مفید


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 3
    آخرين نوشته: December 2nd, 2014, 12:29
  2. پاسخ ها: 2
    آخرين نوشته: April 1st, 2014, 01:02
  3. 100mb هاست روی سرور معتبر (وارز نباشه!) و سایت های معتبری روش باشند!
    توسط :..:galiver:..: در انجمن درخواست هاست اشتراکی
    پاسخ ها: 7
    آخرين نوشته: March 13th, 2012, 19:37

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •