Prog.Hu

Ellenőrzés: bankszámlaszám
20

2013-09-08T20:49+02:00
uds
udsProg.Hu
regisztrált tag
2013-09-08T20:49+02:00
Tisztelt Programozók!

Szedjük össze mit tudunk a bankszámlaszám ellenőrzéséről!

Az én eddigi tudásom:
Háromszor vagy kétszer nyolc számjegy, amiből az első nyolc első három számjegye a bankra utal.
Állítólag a 117 az OTP előtagja.

Szívesen vennék minden kiegészítést illetve segítséget.

Köszönettel, Omlás
Mutasd a teljes hozzászólást!
Ellenőrzés: bankszámlaszám
2013-09-08T20:49+02:00
uds
udsProg.Hu
regisztrált tag
2013-09-08T20:49+02:00
2005-02-16T15:12+02:00
2005-02-16T15:12+02:00

  • Budapest Bank Rt:
    1010: a Budapest Bank Rt. száma
    xxx: a fiók száma, ahová az adott számlaszám tartozik
    y: ellenőrző kód (mindjárt írom)

    ...ezután...:
    xxxxxx: a bankban lévő számlád száma
    y: általában 0
    z: ellenőrző kód (mindjárt írom)

    xxxxxxx: gőzöm sincs, hogy micsoda
    y: ellenőrző kód (mindjárt írom)

    Tehát a szám így néz ki:
    1010xxxy-xxxxxxyz-xxxxxxy

    S most jöhet az ellenőrző kód leírása:
    3*8 számjegyből áll a számlaszám (vagy 2*8, a logika alapján mindegy)
    A 8 számjegy szorzói:
    97319731

    A lényeg annyi, hogy az utolsó (8.) számjegy (amelyik 1-es szorzóval van) az előző számjegyek összegét úgy kell kiegészítse, hogy 0 legyen a vég, tehát a 10102093 esetén (ez az egyik Etele úti fiókazonosító):
    1*9+0*7+1*3+0*1+2*9+0*7+9*3+3*1=9+3+18+27+3=60
    Egy másik szám (10103056):
    1*9+0*7+1*3+0*1+3*9+0*7+5*3+6*1=9+3+27+15+3=60
    Az csak véletlen, hogy a két végösszeg egyaránt 60.

    A másik két 8 számjegyű sort hasonló módon kell leellenőrizni. Ez a Budapest Banknál megy így, hogy a többiek hogyan műkődnek, gőzöm sincs.
    Mutasd a teljes hozzászólást!
  • A bankszámlaszámot az MNB definiálja (PSZÁF-től tudom). A nemzetközi bankszámlaszám meg asszem EU-s, de egy az egyben átvették.
    Az előző válaszok mind jók véleményem szerint.
    Mutasd a teljes hozzászólást!
  • Az első három számjegy neve GIRO kód, szintén MNB-s mulatság:
    Általános Értékforgalmi Bank Rt. 105
    BNP Paribas Hungária Bank Rt. 131
    Budapest Hitel és Fejlesztési Bank Rt. 101
    CIB Közép-Európai Nemzetközi Bank Rt. 107
    Citibank Budapest Rt. 108
    Commerzbank Budapest Rt. 142
    Credigen Bank Rt. 172
    Credit Lyonnais Bank Magyarország Rt. 136
    Daewoo Bank (Magyarország) Rt. 135
    Deutsche Bank Rt. 163
    Dresdner Bank (Hungária) Rt. 174
    Erste Bank Hungary Rt. 116
    FHB Földhitel és Jelzálog Bank Rt. 168
    Fundamenta Magyar-Német Lakástakarékpénztár Rt. 880
    GMAC Bank Hungary Rt. 164
    Hanwha Bank Magyarország Rt. 114
    HVB Bank Hungary Rt. 109
    HVB Jelzálogbank Rt. 171
    Inter-Európa Bank Rt. 111
    Internationale Nederlanden Bank (Magyarország) Rt. (ING Bank) 137
    Kereskedelmi és Hitelbank Rt. 104
    Konzumbank Kereskedelmi Bank Rt. 113
    Lakáskassza Első Általános Lakástakarékpénztár Rt. 882
    Magyar Fejlesztési Bank Rt. 146
    Magyar Cetelem Bank 167
    Magyar Export-Import Bank Rt. (Eximbank) 148
    Magyar Külkereskedelmi Bank Rt. 103
    Magyar Nemzeti Bank 190
    Magyar Takarékszövetkezeti Bank Rt. 115
    Magyarországi Volksbank Rt. 141
    Merkantil Bank Rt. 128
    Nemzetközi Kereskedelmi Bank Rt. (IC Bank) 147
    Országos Takarékpénztár és Kereskedelmi Bank Rt. 117
    OTP Jelzálogbank Rt. 884
    OTP Lakástakarékpénztár Rt. 881
    Otthon Magyar-Osztrák Lakástakarékpénztár Rt. 883
    Polgári Kereskedelmi Bank Rt. 173
    Porsche Bank Hungária Rt. 160
    Postabank és Takarékpénztár Rt. 119
    Raiffeisen Bank Rt. 120
    Rákóczi Regionális Fejlesztési Bank Rt. 138
    Westdeutsche Landesbank ( Hungária) Rt. 121
    Magyar Államkincstár 100
    Mutasd a teljes hozzászólást!
  • A bankszámla jelölése és a nemzetközi bankszámlaszám

    4. § (1) A bankszámlát a belföldi pénzforgalomban elsődlegesen a pénzforgalmi jelzőszám és a bankszámla elnevezése azonosítja. A pénzforgalmi jelzőszám 16 (2x8) vagy 24 (3x8) numerikus karaktert tartalmazó számsor, amelyet az alábbi szabályoknak megfelelően kell kialakítani:
    a) Az első nyolc karakterből (irányítókód) az első három számjegy a számlavezető hitelintézetet, a következő négy számjegy (fiókazonosító) pedig a hitelintézet fiókját vagy számlavezető helyét jelöli. A nyolcadik számjegy ellenőrzőszám.
    b) A 9-16. karakter vagy a 9-24. karakter a bankszámla tulajdonosának azonosító száma (ügyfélazonosító). 16 karakter hosszúságú számsor esetében a 16. számjegy, 24 karakter hosszúságú számsor esetében a 24. számjegy ellenőrzőszám. A 24 karakter hosszúságú pénzforgalmi jelzőszám 16. számjegye értelemszerűen szabadon felhasználható.
    (2) A pénzforgalmi jelzőszám első három számjegyét (a hitelintézet azonosító kódja) a Magyar Nemzeti Bank (a továbbiakban: MNB) határozza meg, és vezeti azok nyilvántartását.
    (3) Az ellenőrzőszámok az előttük álló számjegyek ellenőrzésére szolgálnak. Képzésüket a következő algoritmus szerint kell elvégezni: külön az 1-7., valamint külön a 9-15. vagy 9-23. számjegyeket helyértékük csökkenő sorrendjében meg kell szorozni a "9,7,3,1,...9,7,3,1" számokkal, a szorzatokat összeadjuk, és az eredmény egyes helyértékén lévő számot kivonjuk 10-ből. A különbség az ellenőrzőszám. (Ha a különbség "10", az ellenőrzőszám értéke "0".)
    (4) A hitelintézet a pénzforgalmi jelzőszám kialakítását és belső tartalmát a fenti szabályok figyelembevételével szabadon határozza meg.
    (5) A nemzetközi bankszámlaszám (International Bank Account Number, a továbbiakban: IBAN) 28 alfanumerikus karaktert tartalmazó számsor, amely nemzetközi fizetések esetében a bankszámlák jelölésére szolgálhat. A nemzetközi bankszámlaszámot az alábbi szabályok alkalmazásával kell kialakítani:
    a) az első két karakter Magyarország ISO 3166 szabvány szerinti országkódja: HU;
    b) a 3-4. karakter az ellenőrzőszám;
    c) az 5-28. karakteren a belföldi pénzforgalmi jelzőszám (16 karakter hosszúságú pénzforgalmi jelzőszám esetében az IBAN képzésekor az utolsó 8 karaktert nullával kell feltölteni).
    (6) A nemzetközi bankszámlaszám 3-4. pozícióiban szereplő ellenőrzőszám képzésének algoritmusát az Európai Banki Szabványügyi Bizottság (European Committee for Banking Standards (ECBS) IBAN képzésére vonatkozó szabványa tartalmazza: "IBAN: International Bank Account Number (EBS204 V3-February 2001)".
    (7) A hitelintézet a nemzetközi bankszámlaszám kialakítását és belső tartalmát a fenti szabályok figyelembevételével szabadon határozza meg.
    Forrás: CD jogtár
    Mutasd a teljes hozzászólást!
  • public static boolean checkCDV(String code) {
    String multipliers = "9731";
    int i = 0;
    int sum = 0;
    for (i=0; i<code.length()-1; i++){
    sum += Character.digit(code.charAt(i),10)
    * Character.digit(multipliers.charAt((i % 4)),10);
    }
    return ((10-(sum % 10)) % 10) == Character.digit(code.charAt(code.length()-1),10);
    // az összeg utolsó számjegyét kivonjuk tízből, de 10 esetén e számjegy 0
    }
    Mutasd a teljes hozzászólást!
  • Egy kiegészítés: az eddigi hozzászólásokból kiderül a tuti az ellenőrzésről, de mégis el lehet rontani (nekünk sikerült :
    ügyeljetek rá, hogy míg az 1-7 jegyeket külön kell ellenőrizni, addig a 9-23 jegyeket már összevontan.
    Mutasd a teljes hozzászólást!
  • A számlaszámokkal 12 éve foglalkoztam utoljára 3 8 jegyű részből áll, A,B,C ebből a B és C összevonható így a bank döntésétől függően lehet 3x8 jegyű, de lehet 9+16 jegyű is. az A rész tartalmazza a bank kódját(3char), azon belől a bankfiók kódját(4char), + a cdv kódot. a B és C rész a számlaszámod, ez is tartalmaz cdv kódot. Ha a B és C részt összevonják, nem tudom hogy képezik a cdv kódot.
    Mutasd a teljes hozzászólást!
  • Éppen most volt az egyik cégemnél, hogy valamelyik banknál a
    "azon belől a bankfiók kódját(4char),"
    állításról kiderült, hogy nem igaz, mert a soproni, és az egyik pesti fióknak ugyan az volt.
    Mutasd a teljes hozzászólást!
  • Nekem egy ilyen listám van a GIRO kódokról.....

    100 MÁK
    101 BUDAPEST BANK RT
    102 KH BANK RT
    103 MKB RT
    104 KERESK. BANK
    105 ÁÉB RT.
    107 CIBH
    108 CITIBANK
    109 UNICREDIT BANK HUNGARY ZRT.
    137 ING BANK RT.
    111 IEB
    113 KONZUMBANK RT.
    114 HANWHA
    115 TAKARÉKBANK
    116 ERSTE BANK HUN
    117 OTP BANK RT.
    119 ERSTE BANK RT.
    120 RAIFFEISEN UNIC
    121 WESTLB
    173 POLGBANK
    119 POSTABANK
    128 MERKANTIL BANK
    190 REALBANK RT
    108 EKB RT
    131 BNP PARIBAS
    104 KERESK. BANK
    135 DAEWOO BANK RT.
    136 CLBH
    137 ING BANK RT.
    138 RÁKÓCZI BANK RT.
    140 HYPO-BANK
    141 VOLKSBANK
    142 COMMERZBANK
    146 MFB RT.
    147 IC BANK
    148 EXIMBANK RT.
    162 HBW EXPRESS TKSZ
    163 DEUTSCHE BANK
    165 RABOBANK RT.
    167 MAGYAR CETELEM
    169 SOCIÉTÉ
    170 EURODIREKT
    172 CREDIGEN BANK RT
    173 POLGÁRI BANK
    190 MNB RT.
    115 TAKSZÖV BÓLY
    115 TAKSZÖV HEGYHÁTV
    503 MECSEKVID TKSZ
    115 TAKSZÖV MOHÁCS
    506 SIKLÓS ÉS VIDÉKE
    115 TAKSZÖV SZENTLŐR
    115 TAKSZÖV SZIGETVÁ
    115 TAKSZÖV ÚJPETRE
    115 TAKSZÖV BÁCSKA
    115 TAKSZÖV BOROTAI
    115 TAKSZÖV DUNAPATA
    115 TAKSZÖV HAJÓS
    115 TAKSZÖV HARTA
    115 TAKSZÖV JÁSZSZEN
    115 TAKSZÖV KEREKEGY
    115 TAKSZÖV KISKUNFÉ
    115 TAKSZÖV LAKITELE
    115 TAKSZÖV MÉLYKÚT
    115 TAKSZÖV BÁCSKA
    115 TAKSZÖV NEMESNÁD
    115 TAKSZÖV ORGOVÁNY
    115 TAKSZÖV RÓNASÁGI
    115 TAKSZÖV SOLT
    527 SOLTVADKERT TKSZ
    115 TAKSZÖV SZABADSZ
    115 TAKSZÖV TISZAALP
    115 TAKSZÖV TISZAKÉC
    115 TAKSZÖV TOMPA
    115 TAKSZÖV ENDRŐD
    115 TAKSZÖV GÁDOROS
    115 TAKSZÖV GYULAVÁR
    115 TAKSZÖV KEVERMES
    115 TAKSZÖV KÉTEGYHÁ
    115 TAKSZÖV KONDOROS
    539 TAKSZÖV SZARVAS
    115 TAKSZÖV SZEGHALO
    115 TAKSZÖV TÓTKOMLÓ
    115 TAKSZÖV BOGÁCS
    115 TAKSZÖV BOLDVA
    115 TAKSZÖV EMŐD
    115 TAKSZÖV FELSŐZSO
    115 TAKSZÖV FORRÓ
    115 TAKSZÖV GÖNC
    115 TAKSZÖV HANGONY
    115 TAKSZÖV KAZINCBA
    115 TAKSZÖV MEZŐKERE
    115 TAKSZÖV RICSE
    115 TAKSZÖV SAJÓKAZA
    115 TAKSZÖV ZEMPLÉN
    115 TAKSZÖV SZENDRŐ
    115 TAKSZÖV TAKTAHAR
    115 TAKSZÖV TARCAL
    115 TAKSZÖV TÁLLYA
    115 TAKSZÖV TISZAKAR
    115 TAKSZÖV TOKAJ
    115 TAKSZÖV TOLCSVA
    115 TAKSZÖV ALGYŐ
    115 TAKSZÖV APÁTFALV
    115 TAKSZÖV CSANÁDPA
    115 TAKSZÖV KISKUNDO
    115 TAKSZÖV KISTELEK
    115 TAKSZÖV KISZOMBO
    115 TAKSZÖV MÓRAHALO
    115 TAKSZÖV NAGYMÁGO
    115 TAKSZÖV SZATYMAZ
    572 SZEGVÁRI TAKSZÖV
    115 TAKSZÖV SZÉKKUTA
    115 TAKSZÖV SZŐREG
    115 TAKSZÖV TÁPÉ
    115 TAKSZÖV PARTISCU
    115 TAKSZÖV ERCSI
    115 TAKSZÖV KÁPOLNÁS
    115 TAKSZÖV MEZŐSÉG
    115 TAKSZÖV MÓR
    115 TAKSZÖV SÁRBOGÁR
    115 TAKSZÖV SÁRRÉTVI
    115 TAKSZÖV VÉRTES
    115 TAKSZÖV ÁSVÁNYRÁ
    115 TAKSZÖV FEHÉRTÓ
    115 TAKSZÖV HALÁSZI
    115 TAKSZÖV HEGYKŐ
    115 TAKSZÖV JÁNOSSOM
    115 TAKSZÖV KIS-RÁBA
    115 TAKSZÖV LÉBÉNY
    115 TAKSZÖV LÖVŐ
    115 TAKSZÖV NYÚL
    115 TAKSZÖV PANNONH
    115 TAKSZÖV PERESZTE
    115 TAKSZÖV RAJKA
    115 TAKSZÖV RÁBAKÖZI
    115 TAKSZÖV TÉTI
    115 TAKSZÖV BALMAZÚJ
    115 TAKSZÖV BIHARKER
    115 TAKSZÖV BIHARNAG
    115 TAKSZÖV EGYEK
    190 TAKSZÖV
    115 TAKSZÖV HAJDÚSÁG
    115 TAKSZÖV HAJDÚSÁM
    115 TAKSZÖV HOSSZÚPÁ
    115 TAKSZÖV KABA
    115 TAKSZÖV KOMÁDI
    115 TAKSZÖV LÉTAVÉRT
    115 TAKSZÖV NAGYRÁBÉ
    115 TAKSZÖV POCSAJ
    115 TAKSZÖV POLGÁR
    115 TAKSZÖV TISZACSE
    115 TAKSZÖV VÁMOSPÉR
    115 TAKSZÖV ABASÁR
    115 TAKSZÖV BÉLAPÁTF
    115 TAKSZÖV DETK
    115 TAKSZÖV DOMOSZLÓ
    619 TKSZ FÜZESABONY
    115 TAKSZÖV GYÖNGYÖS
    115 TAKSZÖV HATVAN
    115 TAKSZÖV MAKLÁR
    115 TAKSZÖV NAGYRÉDE
    115 TAKSZÖV PARÁD
    115 TAKSZÖV PÉTERVÁS
    115 TAKSZÖV TARNAMÉR
    115 TAKSZÖV VÁMOSGYÖ
    115 TAKSZÖV VERPELÉT
    115 TAKSZÖV BAKONYVI
    115 TAKSZÖV BOKOD
    115 TAKSZÖV ESZTERGO
    115 PANNON TAKSZÖV
    115 TAKSZÖV KÖRNYE
    115 TAKSZÖV PILISMAR
    115 TAKSZÖV TATA
    115 TAKSZÖV CSERHÁTV
    115 TAKSZÖV DIÓSJENŐ
    115 TAKSZÖV DRÉGELYP
    115 TAKSZÖV ECSEG
    115 TAKSZÖV ÉRSEKVAD
    115 TAKSZÖV HÉHALOM
    115 TAKSZÖV KARANCS
    115 TAKSZÖV KÁLLÓ
    644 ALSÓNÉMEDI TKSZ
    115 TAKSZÖV BIATORBÁ
    115 TAKSZÖV CEGLÉDB
    115 TAKSZÖV DUNAKANY
    115 TAKSZÖV ÉRD
    115 TAKSZÖV FÁY ANDR
    115 TAKSZÖV KISDUNAM
    115 TAKSZÖV MONOR
    652 TAKSZÖV NAGYKÁTA
    115 TAKSZÖV NAGYKŐRÖ
    115 TAKSZÖV NAGYMARO
    655 TAKSZÖV ÖRKÉNY
    115 TAKSZÖV PÉCEL
    657 TAKSZÖV
    115 TAKSZÖV TÁPIÓSZE
    659 TURAI TAKSZÖV
    115 TAKSZÖV VERESEGY
    115 TAKSZÖV BALATONF
    115 TAKSZÖV BALATONS
    115 TAKSZÖV BARCS
    115 TAKSZÖV BÖHÖNYE
    115 TAKSZÖV CSURGÓ
    115 TAKSZÖV IGAL
    115 TAKSZÖV KARÁD
    115 TAKSZÖV KÉTHELY
    115 TAKSZÖV NAGYATÁD
    115 TAKSZÖV NAGYBAJO
    115 TAKSZÖV NAGYBERK
    115 TAKSZÖV ÖREGLAK
    115 TAKSZÖV HODÁSZ
    115 TAKSZÖV IBRÁNY
    115 TAKSZÖV SZATMÁRB
    115 TAKSZÖV RÉTKÖZ
    115 TAKSZÖV NAGYECSE
    115 TAKSZÖV NAGYHALÁ
    115 TAKSZÖV NYÍRBÉLT
    115 TAKSZÖV NYÍRMADA
    115 TAKSZÖV PORCSALM
    115 TAKSZÖV RAKAMAZ
    115 TAKSZÖV TISZAVAS
    115 TAKSZÖV SZABOLCS
    115 TAKSZÖV NYÍRSÉGI
    115 TAKSZÖV VÁLLAJ
    115 TAKSZÖV ALSÓJÁSZ
    115 TAKSZÖV BESENYSZ
    115 TAKSZÖV FEGYVERN
    115 TAKSZÖV JÁSZÁROK
    115 TAKSZÖV JÁSZFÉNY
    115 TAKSZÖV JÁSZKISÉ
    115 TAKSZÖV KÖTELEK
    115 TAKSZÖV KUNSZENT
    115 TAKSZÖV RÁKÓCZIF
    190 TAKSZÖV HOMOK
    115 TAKSZÖV TISZAFÜR
    115 TAKSZÖV TÓSZEG
    115 TAKSZÖV ÚJSZÁSZ
    115 TAKSZÖV BÁTASZÉK
    115 TAKSZÖV DÖBRÖKÖZ
    115 TAKSZÖV DUNAFÖLD
    115 TAKSZÖV FADD
    115 TAKSZÖV HŐGYÉSZ
    115 É-TOLNA MEGY TAK
    115 TAKSZÖV NAGYMÁNY
    115 TAKSZÖV PINCEHEL
    115 TAKSZÖV SIÓMENTI
    115 É-TOLNA MEGY TAK
    115 TAKSZÖV TAMÁSI
    115 TAKSZÖV TENGELIC
    115 TAKSZÖV VÖLGYSÉG
    115 TAKSZÖV ZOMBA
    115 TAKSZÖV CSEPREG
    115 TAKSZÖV JÁK
    115 TAKSZÖV JÁNOSHÁZ
    115 TAKSZÖV KÖRMEND
    115 TAKSZÖV NÁDASD
    115 TAKSZÖV ŐRSÉG
    115 TAKSZÖV RÉPCELAK
    115 TAKSZÖV RUM
    115 TAKSZÖV BADACSON
    115 TAKSZÖV BALATONF
    115 TAKSZÖV LOVASZPA
    115 TAKSZÖV NAGYVÁZS
    115 TAKSZÖV SOMLÓSZŐ
    115 TAKSZÖV SÜMEG
    115 TAKSZÖV SZENTGÁL
    115 TAKSZÖV UGOD
    115 TAKSZÖV VESZPRÉM
    115 TAKSZÖV ZIRC
    115 TAKSZÖV BAK
    115 TAKSZÖV BÁNOKSZE
    115 TAKSZÖV BECSEHEL
    115 TAKSZÖV GUTORFÖL
    115 TAKSZÖV GYENESDI
    115 TAKSZÖV HÉVÍZ
    115 TAKSZÖV LENTI
    115 TAKSZÖV PACSA
    115 TAKSZÖV SURD
    115 TAKSZÖV TŰRJE
    115 TAKSZÖV ZALAKOMÁ
    115 TAKSZÖV ZALALÖVŐ
    115 TAKSZÖV ZALASZÁN
    115 TAKSZÖV ZALASZEN
    115 TAKSZÖV ZALAVÁR
    115 TAKSZÖV ZALAVÖLG
    115 TAKSZÖV SZÉCSÉNY
    115 TAKSZÖV VÁSÁROSN
    190 KISALFÖLD HSZ
    190 SZÉCHENYI HITSZ.
    190 RAKÓCZI HITELSZ.
    190 MECSEKKÖRNYÉK HS
    190 ZHSZ
    880 FUNDAMENTA RT.
    882 LAKÁSKASSZA
    Mutasd a teljes hozzászólást!
  • Itt egy PHP-hez:

            /**
             * Ellenőrzi a bankszámlaszámot
             *
             * @param string $bs A bankszámlaszám
             * @return bool érvényes bankszámlaszám esetén true, különben false
             *
             * @author zottty@gmail.com
             */
            public function validBankszamlaszam( $bs ){
                    $chc = Array(9,7,3,1,9,7,3,1);
           
                    //Piszkok kipucolása
                    $bs = str_replace("-","", $bs );
                    if ( !is_numeric( $bs ) ){
                        return false;
                    }
                   
                    //Hossz ellenőrzés
                    if ( ( strlen( $bs ) != 16 ) && ( strlen( $bs ) != 24 ) ){
                        return false;
                    }
                   
                    //$chc ellenőrzése az összes 8-as blokkon
                    $reszek = ceil(strlen($bs) / 8);
                    for ( $resz = 0; $resz < $reszek; $resz++ ){
                        $sum = 0;
                        for ( $i = 0; $i < 8; $i++ ){
                                $sum += $chc[ $i ] * $bs[ $resz * 8 + $i ];
                            }
                            if ( $sum % 10 != 0 ){
                                return false;
                            }
                    }
                   
                    return true;
                   
            }   
    }
    Mutasd a teljes hozzászólást!
  • Sajnos az ellenőrző kód a középső 8 karakternél nem minden esetben működik, tapasztalat pl: Volksbank.

    Elképzelhető, hogy néhány bank arra saját algoritmust használ.
    Mutasd a teljes hozzászólást!
  • Sziasztok!

    A fentebbi ellenőrző hibája, hogy 8-as blokkokban számol, pedig a 24 hosszú számlaszámoknál a 16.jegy 'szabadon felhasználható', így az nem minősül ellenőrző összegnek.

    A helyes számítás:
    az első 8 külön, és a maradék 8, ill 16 egyben.

    <?php
            $sTestAccount = ' 12345676 - 12345678 - 91234562 ';
            var_dump (checkBA ($sTestAccount));
    /**
     *        Bankszámla-ellenőrző
     *
     * @param string sBankAccount Bankszámlaszám
     * @return bool Az érvényesség (igen/nem)
     *
     */
    function checkBA ($sBankAccount) {
      $retVal = false;
      $sStrippedAccount = preg_replace ('/[^0-9]*/', '', $sBankAccount);
      $sCheckTags = '9731';
      echo $sStrippedAccount . "<br/>\n";
      if (strlen ($sStrippedAccount) == 16 || strlen ($sStrippedAccount) == 24) {
        $cs = 0;
        for ($i = 0; $i < 8; $i++) {
          $cs += $sStrippedAccount[$i] * $sCheckTags[$i % 4];
        }
        if (! ($cs % 10)) {
          $cs = 0;
          for ($i = 8; $i < strlen ($sStrippedAccount); $i++) {
            $cs += $sStrippedAccount[$i] * $sCheckTags[$i % 4];
          }
          if (! ($cs % 10)) $retVal = true;
        }
      }
      return $retVal;
    }
    ?>
    Mutasd a teljes hozzászólást!
  • Az elvileg up-to-date lista a bankkódokról elérhető az MNB honlapján. Ha jól látom ráadásul nem csak az első három számjegy van benne, hanem az első nyolc - azaz a bank fiókja is benne van, ráadásul ott a cím is.

    Íme a link: Magyar Nemzeti Bank

    Üdv:
    GyoreG
    Mutasd a teljes hozzászólást!