您好,登錄后才能下訂單哦!
本文實例講述了Java實現獲取銀行卡所屬銀行,驗證銀行卡號是否正確的方法。分享給大家供大家參考,具體如下:
需求:用戶輸入銀行卡卡號,需要驗證卡號格式,自動填充所屬銀行。
第一想到的是正則表達式,后面嘗試多次,卡號驗證不太準確。
換一種思路:用戶輸入卡號,進入java后臺,對卡號進行驗證,返回結果。可行!
第一點:
如何驗證卡號格式以及所屬銀行?
js/html此處就不寫出來了。直接給后臺代碼,我提供給各位一個簡單的main調用,可自行修改(建議放入service):
/** * TODO * @param cardNo 銀行卡卡號 * @return {"bank":"CMB","validated":true,"cardType":"DC","key":"(卡號)","messages":[],"stat":"ok"} * 2017年5月22日 下午4:35:23 */ public static String getCardDetail(String cardNo) { // 創建HttpClient實例 String url = "https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo="; url+=cardNo; url+="&cardBinCheck=true"; StringBuilder sb = new StringBuilder(); try { URL urlObject = new URL(url); URLConnection uc = urlObject.openConnection(); BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream())); String inputLine = null; while ( (inputLine = in.readLine()) != null) { sb.append(inputLine); } in.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return sb.toString(); } public static void main(String[] args) { System.out.println(getCardDetail("卡號")); }
得到的json字符串{"bank":"CMB","validated":true,"cardType":"DC","key":"(卡號)","messages":[],"stat":"ok"}后,后面的操作我就不多嘴了。
bank 銀行的名稱代碼
validated 是否通過驗證
不花錢就是程序員的原則!
上面調用的也是支付寶的api地址,完全免費哦 ~~
第二點:
如何獲得所有銀行的列表?
下面是我從支付寶頁面抓取的銀行卡列表json,很全面。你們copy后放入自己的json文件,或改寫到你們的數據庫,或者放入map
{ "SRCB": "深圳農村商業銀行", "BGB": "廣西北部灣銀行", "SHRCB": "上海農村商業銀行", "BJBANK": "北京銀行", "WHCCB": "威海市商業銀行", "BOZK": "周口銀行", "KORLABANK": "庫爾勒市商業銀行", "SPABANK": "平安銀行", "SDEB": "順德農商銀行", "HURCB": "湖北省農村信用社", "WRCB": "無錫農村商業銀行", "BOCY": "朝陽銀行", "CZBANK": "浙商銀行", "HDBANK": "邯鄲銀行", "BOC": "中國銀行", "BOD": "東莞銀行", "CCB": "中國建設銀行", "ZYCBANK": "遵義市商業銀行", "SXCB": "紹興銀行", "GZRCU": "貴州省農村信用社", "ZJKCCB": "張家口市商業銀行", "BOJZ": "錦州銀行", "BOP": "平頂山銀行", "HKB": "漢口銀行", "SPDB": "上海浦東發展銀行", "NXRCU": "寧夏黃河農村商業銀行", "NYNB": "廣東南粵銀行", "GRCB": "廣州農商銀行", "BOSZ": "蘇州銀行", "HZCB": "杭州銀行", "HSBK": "衡水銀行", "HBC": "湖北銀行", "JXBANK": "嘉興銀行", "HRXJB": "華融湘江銀行", "BODD": "丹東銀行", "AYCB": "安陽銀行", "EGBANK": "恒豐銀行", "CDB": "國家開發銀行", "TCRCB": "江蘇太倉農村商業銀行", "NJCB": "南京銀行", "ZZBANK": "鄭州銀行", "DYCB": "德陽商業銀行", "YBCCB": "宜賓市商業銀行", "SCRCU": "四川省農村信用", "KLB": "昆侖銀行", "LSBANK": "萊商銀行", "YDRCB": "堯都農商行", "CCQTGB": "重慶三峽銀行", "FDB": "富滇銀行", "JSRCU": "江蘇省農村信用聯合社", "JNBANK": "濟寧銀行", "CMB": "招商銀行", "JINCHB": "晉城銀行JCBANK", "FXCB": "阜新銀行", "WHRCB": "武漢農村商業銀行", "HBYCBANK": "湖北銀行宜昌分行", "TZCB": "臺州銀行", "TACCB": "泰安市商業銀行", "XCYH": "許昌銀行", "CEB": "中國光大銀行", "NXBANK": "寧夏銀行", "HSBANK": "徽商銀行", "JJBANK": "九江銀行", "NHQS": "農信銀清算中心", "MTBANK": "浙江民泰商業銀行", "LANGFB": "廊坊銀行", "ASCB": "鞍山銀行", "KSRB": "昆山農村商業銀行", "YXCCB": "玉溪市商業銀行", "DLB": "大連銀行", "DRCBCL": "東莞農村商業銀行", "GCB": "廣州銀行", "NBBANK": "寧波銀行", "BOYK": "營口銀行", "SXRCCU": "陜西信合", "GLBANK": "桂林銀行", "BOQH": "青海銀行", "CDRCB": "成都農商銀行", "QDCCB": "青島銀行", "HKBEA": "東亞銀行", "HBHSBANK": "湖北銀行黃石分行", "WZCB": "溫州銀行", "TRCB": "天津農商銀行", "QLBANK": "齊魯銀行", "GDRCC": "廣東省農村信用社聯合社", "ZJTLCB": "浙江泰隆商業銀行", "GZB": "贛州銀行", "GYCB": "貴陽市商業銀行", "CQBANK": "重慶銀行", "DAQINGB": "龍江銀行", "CGNB": "南充市商業銀行", "SCCB": "三門峽銀行", "CSRCB": "常熟農村商業銀行", "SHBANK": "上海銀行", "JLBANK": "吉林銀行", "CZRCB": "常州農村信用聯社", "BANKWF": "濰坊銀行", "ZRCBANK": "張家港農村商業銀行", "FJHXBC": "福建海峽銀行", "ZJNX": "浙江省農村信用社聯合社", "LZYH": "蘭州銀行", "JSB": "晉商銀行", "BOHAIB": "渤海銀行", "CZCB": "浙江稠州商業銀行", "YQCCB": "陽泉銀行", "SJBANK": "盛京銀行", "XABANK": "西安銀行", "BSB": "包商銀行", "JSBANK": "江蘇銀行", "FSCB": "撫順銀行", "HNRCU": "河南省農村信用", "COMM": "交通銀行", "XTB": "邢臺銀行", "CITIC": "中信銀行", "HXBANK": "華夏銀行", "HNRCC": "湖南省農村信用社", "DYCCB": "東營市商業銀行", "ORBANK": "鄂爾多斯銀行", "BJRCB": "北京農村商業銀行", "XYBANK": "信陽銀行", "ZGCCB": "自貢市商業銀行", "CDCB": "成都銀行", "HANABANK": "韓亞銀行", "CMBC": "中國民生銀行", "LYBANK": "洛陽銀行", "GDB": "廣東發展銀行", "ZBCB": "齊商銀行", "CBKF": "開封市商業銀行", "H3CB": "內蒙古銀行", "CIB": "興業銀行", "CRCBANK": "重慶農村商業銀行", "SZSBK": "石嘴山銀行", "DZBANK": "德州銀行", "SRBANK": "上饒銀行", "LSCCB": "樂山市商業銀行", "JXRCU": "江西省農村信用", "ICBC": "中國工商銀行", "JZBANK": "晉中市商業銀行", "HZCCB": "湖州市商業銀行", "NHB": "南海農村信用聯社", "XXBANK": "新鄉銀行", "JRCB": "江蘇江陰農村商業銀行", "YNRCC": "云南省農村信用社", "ABC": "中國農業銀行", "GXRCU": "廣西省農村信用", "PSBC": "中國郵政儲蓄銀行", "BZMD": "駐馬店銀行", "ARCU": "安徽省農村信用社", "GSRCU": "甘肅省農村信用", "LYCB": "遼陽市商業銀行", "JLRCU": "吉林農信", "URMQCCB": "烏魯木齊市商業銀行", "XLBANK": "中山小欖村鎮銀行", "CSCB": "長沙銀行", "JHBANK": "金華銀行", "BHB": "河北銀行", "NBYZ": "鄞州銀行", "LSBC": "臨商銀行", "BOCD": "承德銀行", "SDRCU": "山東農信", "NCB": "南昌銀行", "TCCB": "天津銀行", "WJRCB": "吳江農商銀行", "CBBQS": "城市商業銀行資金清算中心", "HBRCU": "河北省農村信用社" }
第三點:
如何顯示銀行對應的logo?
銀行的LOGO也可以用過支付寶提供的一個圖片API獲取。第一點中我們通過卡號獲取到了銀行名稱代碼等信息,此處即可使用以下鏈接顯示圖片:
https://apimg.alipay.com/combo.png?d=cashier&t=ABC(銀行簡稱-大寫)
完成整個需求,其實很簡單,也就這3個基本步驟。
寫的不夠完整,希望能幫到各位。
PS:這里再為大家推薦一款相關在線工具供大家參考:
在線銀行卡號歸屬地信息查詢工具:
http://tools.jb51.net/bianmin/bankinfo
更多關于java算法相關內容感興趣的讀者可查看本站專題:《Java數據結構與算法教程》、《Java操作DOM節點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。