干貨丨銀行卡號編碼規則及其應用

3 評論 24614 瀏覽 138 收藏 5 分鐘

綁卡時輸入銀行卡號后識別出銀行和卡種是如何做到的?為什么能夠在卡號輸入有誤時進行友好提示?本篇文章將為大家揭曉。

在閱讀本篇文章時,強烈建議大家參考本人之前發布的文章《綁卡產品設計》,以便加深對本篇文章的理解。

一、銀行卡結構

XXXXXX XXXXXXXXXXXX X

發卡行標識代碼 自定義位 校驗碼

根據ISO標準,銀行卡長度一般在13-19位,國際上也有12位的。銀聯標準卡卡長度一般是在16-19位,雙組織卡也有13-19位的。

二、發卡行標識代碼

發卡行標識代碼Bank Identification Number(BIN),又叫發卡機構標識代碼Issuer Identification Numbers(IIN)。一般由6位數字組成,2014年底,國際標準組織(ISO)已經將BIN由6位數字調整到8位數字。目前國內銀聯卡,因銀行眾多,特別是村鎮銀行的存在,BIN長度以6位占絕大部分,另外還存在7、8、9、10等位數卡BIN。

發卡行標識代碼第一位,為發卡行業標識號Major Industry Identifier(MII),代表的是發卡機構所處行業。具體分配規則如下:

94eca39c517f541b0e12455923751703_r

目前銀聯標準卡以62開頭,各銀行再向銀聯進行卡BIN申請,如622848開頭的卡為農行借記卡。我們發現,銀聯卡不都是以62開頭,主要有2種情況。第一種是雙組織卡,如銀聯、運通雙組織卡,一般以信用卡居多,如招行與運通合作的運通卡。另外一種即早期以9開頭的銀行卡,這些卡都是國內自行分配的,僅限國內使用,無法與國際進行接軌。以下為部分常見卡組織發行的銀行卡起始數字:

4f233be5436a12cb1cf865643e0498bc_b

銀聯卡,通過卡BIN能獲取到的信息不僅僅是發卡行,還能確定該卡卡種、卡名稱、卡號長度等信息。以下為部分卡BIN信息列舉:

6e09d2d8c1ede21b048b637df548dbc5_r

因此,只要能獲取到比較全面的卡BIN數據,就能判斷出銀行卡發卡行及卡種。目前支付寶、微信等大部分主流需要綁卡的應用都是如此實現。

二、自定義位

發卡行自定義位,一般在6-12位。

三、校驗碼算法

校驗碼為銀行卡號最后一位,采用LUHN算法,亦稱模10算法。計算方法如下:

第一步:從右邊第1個數字開始每隔一位乘以2;

第二步: 把在第一步中獲得的乘積的各位數字相加,然后再與原號碼中未乘2的各位數字相加;

第三步:對于第二步求和值中個位數求10的補數,如果個位數為0則該校驗碼為0。

舉例:

6259 6508 7177 209(不含校驗碼的銀行卡號)

第一步:6*2=12,5*2=10,6*2=12,0*2=0,7*2=14,7*2=14,2*2=4,9*2=18

第二步:1+2 + 1+0 + 1+2 + 0 + 1+4 + 1+4 + 4 + 1+8 = 30

30 + 2+9+5+8+1+7+0 = 62

第三步:10-2=8

所以,校驗碼是8,完整的卡號應該是6259650871772098。

值得指出的是,目前銀聯卡幾乎都支持校驗碼算法,但是也不排除極個別不支持此算法的,如杭州銀行早期發行的西湖卡。

 

作者:MrColin,支付結算產品經理,略懂技術。對支付結算感興趣的,可知乎 @MrColin

本文由 @MrColin 原創發布于人人都是產品經理。未經許可,禁止轉載。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 如果大家對支付結算或相關產品感興趣,請移步本人知乎專欄獲取干貨
    https://zhuanlan.zhihu.com/mrcolin

    來自浙江 回復
    1. 這種卡bin數據哪里可以獲得哇

      來自上海 回復
  2. 謝謝作者??

    回復