老王倉庫管貨和卡bin服務設計
上篇支付話題【老王開店和支付路由管理】聊到「九層之台,起於壘土」,如果路由是機制,是檯子的話;最小的壘土就是我們的卡bin,每一張銀行卡都有一個卡號,每個卡號都包含著發卡行標示代碼(BIN號),也就是我們俗稱的卡BIN。
卡BIN是什麼?市面上有哪些卡BIN?卡BIN有什麼用?怎麼設計服務?
周末,我們一起聊聊的卡BIN服務設計,我們還是從隔壁老王開店的故事講起。
老王開了個雜貨店,隨著生意越來越大,合作的供應商也越來越多了,商品種類也越來越豐富,進的貨已經多到需要老王特地租個倉庫去放貨。
租下來老王開始按塊劃分區域進行放貨,為了後面好類舉,我們假設老王的貨物都是食品類,只賣速食麵。
老王根據速食麵的牌子不同,比如康師傅、統一等各自放了一個區域。
老王記下來康師傅有誰可以來供貨【老甲、小鄭】,統一可以有誰來供貨。
每個牌子又根據種類不同再各自歸置,比如統一老壇酸菜面、統一紅燒牛肉麵、統一滷肉面;康師傅老壇酸菜面、康師傅紅燒牛肉麵。
每次缺貨的時候,老王就是看看缺的是哪個牌子,找供應商再去定具體的品種補貨。如圖A,,老王的倉庫索引圖
一開始還都挺好,康師傅沒了找老甲、小鄭供貨,統一沒了找李三,趙四。反正誰便宜找誰。
慢慢時間長了,老王就遇到了點小問題。打電話要貨時,缺紅燒牛肉麵給李三沒有紅燒只有酸菜;要酸菜面找趙四時,趙四沒有酸菜有紅燒,老王一開始沒區分供應商具體有哪幾個品種,只知道統一供應商是李三、趙四、錢五;康師傅是孫六、張七,這樣一來一回時間耽誤了,有時候還把事情耽誤了。
後來老王根據發生的問題和自身供應商多,流水大要比價進貨的情況,重新設置了倉庫流程。
老王根據速食麵的牌子不同,比如康師傅、統一等各自放了一個區域。
每個牌子又根據種類不同再各自歸置,比如統一老壇酸菜面、統一紅燒牛肉麵、統一滷肉面;康師傅老壇酸菜面、康師傅紅燒牛肉麵。
老王記下來康師傅酸菜面有誰可以來供貨【老甲、小鄭】、紅燒牛肉麵有誰可以來供應【李三、孫六】。
這麼一改,每次缺貨的時候,老王補貨的流程變成了先去看缺的是哪個牌子,什麼種類商品,再看有哪些供應商可以支持,根據成本,送貨速度等綜合條件決定找誰進,如圖B,老王新的倉庫索引圖。
自此,老王的苦惱再也沒發生過了,老王再也不用擔心缺貨不知道找誰了。
故事講完了,在老王的管理倉庫的過程,也是我們管理卡BIN,設計卡BIN庫結構的一個過程,通過卡bin服務去判定通道支持能力,提高支付成功率。
我們從頭開始說起,先說說卡BIN的一些基礎知識,。
一、卡BIN是什麼
卡BIN是發卡行識別碼(Bank Identification Number, 縮寫為BIN ),又叫發卡機構標識代碼Issuer Identification Numbers(IIN)。一般由6位數字組成,2014年年底,國際標準組織(ISO)已經將BIN由6位數字調整到8位數字。目前就國內銀行卡來說絕大部分卡BIN是六位
二、卡BIN如何產生
卡BIN由國際標準化組織(ISO)【是全球性非政府組織,負責絕大部分領域標準化活動】分配給各從事跨行轉接交換的銀行卡組織,再由卡組織分配給各組織內銀行。
卡BIN第一位,為發卡行業標識號Major Industry Identifier(MII),代表的是發卡機構所處行業。具體情況如下:
目前我們常見到的卡組織有銀聯、萬事達(Mastercard)、維薩(VISA)、美國運通(AE)、日本國際信用卡(JCB)、大萊卡(Diners Card),他們各自的卡BIN情況如下。
拿如圖的銀聯招商銀行借記卡來說,銀聯的卡BIN是62開頭,由ISO分配,招商銀行向銀聯申請卡BIN,銀聯分配621485作為招商銀行借記卡。為了方便了解,舉個例子,卡組織就像食品,信用卡借記卡就像食品、招商銀行就像廠商比如康師傅,發卡行卡Bin段就像對應的旗下產品比如紅燒牛肉麵或者老壇酸菜面,後面的卡位數定義了這個產品的最大產量和標準格式,下文提到的通道方相當於供應商張三、李四。所以每一張銀行的誕生,標準流程是發卡行需要向對應卡組織申請對應卡BIN,而卡組織的BIN碼由ISO分配。發卡行拿到對應BIN碼後再去生成卡號,發給持卡人。
三、卡BIN方案設計
設計卡BIN方案和契約欄位有兩種方案,一種和通道方無關,另外一種和通道方有關。
第一種方案表結構如下
表結構一
在第一種方案中是比較純粹的卡bin結構,只和卡本身信息有關,不關聯通道,比較適合背後接的通道提供方為單一提供方和無路由服務的系統架構中。(路由服務介紹參照老王開店和支付路由管理文章)。
還是拿老王開的倉庫來舉例,在只有一個供應商的情況下,老王發生缺貨的時候,供應商反正就是一家,通過商品上面的信息直接就知道找誰進貨,沒有他選,有貨沒貨結果都一樣;
而路由服務的建立最顯著的表現是會存在多個通道進行選擇,輸出最優通道;通道之間也有主備選擇,那麼通道在沒有路由的情況下或者每個銀行只有一個通道時,用戶輸入銀行的卡bin,進行卡bin校驗時,由於只有一個通道,也就是失敗就是失敗,成功就是成功,即使知道這個卡bin不在庫裡面或者這個通道不支持,也沒有選擇,因為這時候通道和商戶銀行配置是一對一關係。
以上場景裡面第一種方案結構是可行的,缺點是多個通道時會由於某通道支持招商銀行信用卡,但是不支持招商銀行信用卡攜程聯名卡卡bin而引起支付失敗。
就像老王進貨一樣,一通電話打下來沒有這個品種的商品,影響生意。
所以就有了如下第二種表結構,引入了通道方。這樣在有多個通道時,用戶輸入卡BIN,會去判斷能夠支持這個卡bin段的通道有哪些,再根據路由系統自身策略【見老王開店和支付路由管理】,進行比如成本優先,短路優先等規則輸出一個最優通道,從而避免因為卡BIN問題而造成的失敗。
缺點是維護起來麻煩,同樣的卡bin在多個通道上需要維護多次。
表結構二
如同老王后來改進的方法一樣,先看支持這個商品品種的供應商有哪些,再在支持的裡面找個合適的供應商。
四、卡BIN LUNH演算法
在我們進行一張銀行卡驗證或者需要自己偽造銀行卡進行測試時,就需要了解一張卡BIN的演算法是怎麼樣,俗稱LUNH演算法,大家可以拿著自己的銀行卡出來一起計算看看是否符合以下演算法。
PS:銀行卡驗證LUNH演算法
1、從卡號最後一位數字開始,逆向將奇數位(1、3、5等等)相加。
2、從卡號最後一位數字開始,逆向將偶數位數字,先乘以2(如果乘積為兩位數,則將其減去9),再求和。
3、將奇數位總和加上偶數位總和,結果應該可以被10整除。
例如上面提到的招行借記卡,卡號是:6214851216547385
則逆向奇數位求和
5+3+4+6+2+5+4+2=31
逆向偶數位規則
8*2=16-9=7
7*2=14-9=5
5*2=10-9=1
1*2=2
1*2=2
8*2=16-9=7
1*2=2
6*2=12-9=3
7+5+1+2+2+7+2+3=29
最後31+29=60 可以被10整除,認定校驗通過。
路由管理參見【老王開店和支付路由管理】
【註明】版權所有,未經許可,不可轉載
謝謝你來這裡!
王小憨,一個有溫暖有故事有意思有福利的公眾號,歡迎你來。
微信公眾號:王小憨 微信號ID:heyhanlife
推薦閱讀:
※影響國內手機支付普及應用的障礙是什麼?
※如何看待央行新規:明年四月一日起掃碼支付最低單日限額五百元?
※第三方支付的欺詐與反欺詐博弈
※網站想嵌入的各銀行網銀介面,該如何做?