Java實(shí)現(xiàn)獲取銀行卡所屬銀行,驗(yàn)證銀行卡號是否正確的方法詳解
本文實(shí)例講述了Java實(shí)現(xiàn)獲取銀行卡所屬銀行,驗(yàn)證銀行卡號是否正確的方法。分享給大家供大家參考,具體如下:
需求:用戶輸入銀行卡卡號,需要驗(yàn)證卡號格式,自動(dòng)填充所屬銀行。
第一想到的是正則表達(dá)式,后面嘗試多次,卡號驗(yàn)證不太準(zhǔn)確。
換一種思路:用戶輸入卡號,進(jìn)入java后臺(tái),對卡號進(jìn)行驗(yàn)證,返回結(jié)果。可行!
第一點(diǎn):
如何驗(yàn)證卡號格式以及所屬銀行?
js/html此處就不寫出來了。直接給后臺(tái)代碼,我提供給各位一個(gè)簡單的main調(diào)用,可自行修改(建議放入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) {
// 創(chuàng)建HttpClient實(shí)例
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 是否通過驗(yàn)證
不花錢就是程序員的原則!
上面調(diào)用的也是支付寶的api地址,完全免費(fèi)哦 ~~
第二點(diǎn):
如何獲得所有銀行的列表?
下面是我從支付寶頁面抓取的銀行卡列表json,很全面。你們copy后放入自己的json文件,或改寫到你們的數(shù)據(jù)庫,或者放入map
{
"SRCB": "深圳農(nóng)村商業(yè)銀行",
"BGB": "廣西北部灣銀行",
"SHRCB": "上海農(nóng)村商業(yè)銀行",
"BJBANK": "北京銀行",
"WHCCB": "威海市商業(yè)銀行",
"BOZK": "周口銀行",
"KORLABANK": "庫爾勒市商業(yè)銀行",
"SPABANK": "平安銀行",
"SDEB": "順德農(nóng)商銀行",
"HURCB": "湖北省農(nóng)村信用社",
"WRCB": "無錫農(nóng)村商業(yè)銀行",
"BOCY": "朝陽銀行",
"CZBANK": "浙商銀行",
"HDBANK": "邯鄲銀行",
"BOC": "中國銀行",
"BOD": "東莞銀行",
"CCB": "中國建設(shè)銀行",
"ZYCBANK": "遵義市商業(yè)銀行",
"SXCB": "紹興銀行",
"GZRCU": "貴州省農(nóng)村信用社",
"ZJKCCB": "張家口市商業(yè)銀行",
"BOJZ": "錦州銀行",
"BOP": "平頂山銀行",
"HKB": "漢口銀行",
"SPDB": "上海浦東發(fā)展銀行",
"NXRCU": "寧夏黃河農(nóng)村商業(yè)銀行",
"NYNB": "廣東南粵銀行",
"GRCB": "廣州農(nóng)商銀行",
"BOSZ": "蘇州銀行",
"HZCB": "杭州銀行",
"HSBK": "衡水銀行",
"HBC": "湖北銀行",
"JXBANK": "嘉興銀行",
"HRXJB": "華融湘江銀行",
"BODD": "丹東銀行",
"AYCB": "安陽銀行",
"EGBANK": "恒豐銀行",
"CDB": "國家開發(fā)銀行",
"TCRCB": "江蘇太倉農(nóng)村商業(yè)銀行",
"NJCB": "南京銀行",
"ZZBANK": "鄭州銀行",
"DYCB": "德陽商業(yè)銀行",
"YBCCB": "宜賓市商業(yè)銀行",
"SCRCU": "四川省農(nóng)村信用",
"KLB": "昆侖銀行",
"LSBANK": "萊商銀行",
"YDRCB": "堯都農(nóng)商行",
"CCQTGB": "重慶三峽銀行",
"FDB": "富滇銀行",
"JSRCU": "江蘇省農(nóng)村信用聯(lián)合社",
"JNBANK": "濟(jì)寧銀行",
"CMB": "招商銀行",
"JINCHB": "晉城銀行JCBANK",
"FXCB": "阜新銀行",
"WHRCB": "武漢農(nóng)村商業(yè)銀行",
"HBYCBANK": "湖北銀行宜昌分行",
"TZCB": "臺(tái)州銀行",
"TACCB": "泰安市商業(yè)銀行",
"XCYH": "許昌銀行",
"CEB": "中國光大銀行",
"NXBANK": "寧夏銀行",
"HSBANK": "徽商銀行",
"JJBANK": "九江銀行",
"NHQS": "農(nóng)信銀清算中心",
"MTBANK": "浙江民泰商業(yè)銀行",
"LANGFB": "廊坊銀行",
"ASCB": "鞍山銀行",
"KSRB": "昆山農(nóng)村商業(yè)銀行",
"YXCCB": "玉溪市商業(yè)銀行",
"DLB": "大連銀行",
"DRCBCL": "東莞農(nóng)村商業(yè)銀行",
"GCB": "廣州銀行",
"NBBANK": "寧波銀行",
"BOYK": "營口銀行",
"SXRCCU": "陜西信合",
"GLBANK": "桂林銀行",
"BOQH": "青海銀行",
"CDRCB": "成都農(nóng)商銀行",
"QDCCB": "青島銀行",
"HKBEA": "東亞銀行",
"HBHSBANK": "湖北銀行黃石分行",
"WZCB": "溫州銀行",
"TRCB": "天津農(nóng)商銀行",
"QLBANK": "齊魯銀行",
"GDRCC": "廣東省農(nóng)村信用社聯(lián)合社",
"ZJTLCB": "浙江泰隆商業(yè)銀行",
"GZB": "贛州銀行",
"GYCB": "貴陽市商業(yè)銀行",
"CQBANK": "重慶銀行",
"DAQINGB": "龍江銀行",
"CGNB": "南充市商業(yè)銀行",
"SCCB": "三門峽銀行",
"CSRCB": "常熟農(nóng)村商業(yè)銀行",
"SHBANK": "上海銀行",
"JLBANK": "吉林銀行",
"CZRCB": "常州農(nóng)村信用聯(lián)社",
"BANKWF": "濰坊銀行",
"ZRCBANK": "張家港農(nóng)村商業(yè)銀行",
"FJHXBC": "福建海峽銀行",
"ZJNX": "浙江省農(nóng)村信用社聯(lián)合社",
"LZYH": "蘭州銀行",
"JSB": "晉商銀行",
"BOHAIB": "渤海銀行",
"CZCB": "浙江稠州商業(yè)銀行",
"YQCCB": "陽泉銀行",
"SJBANK": "盛京銀行",
"XABANK": "西安銀行",
"BSB": "包商銀行",
"JSBANK": "江蘇銀行",
"FSCB": "撫順銀行",
"HNRCU": "河南省農(nóng)村信用",
"COMM": "交通銀行",
"XTB": "邢臺(tái)銀行",
"CITIC": "中信銀行",
"HXBANK": "華夏銀行",
"HNRCC": "湖南省農(nóng)村信用社",
"DYCCB": "東營市商業(yè)銀行",
"ORBANK": "鄂爾多斯銀行",
"BJRCB": "北京農(nóng)村商業(yè)銀行",
"XYBANK": "信陽銀行",
"ZGCCB": "自貢市商業(yè)銀行",
"CDCB": "成都銀行",
"HANABANK": "韓亞銀行",
"CMBC": "中國民生銀行",
"LYBANK": "洛陽銀行",
"GDB": "廣東發(fā)展銀行",
"ZBCB": "齊商銀行",
"CBKF": "開封市商業(yè)銀行",
"H3CB": "內(nèi)蒙古銀行",
"CIB": "興業(yè)銀行",
"CRCBANK": "重慶農(nóng)村商業(yè)銀行",
"SZSBK": "石嘴山銀行",
"DZBANK": "德州銀行",
"SRBANK": "上饒銀行",
"LSCCB": "樂山市商業(yè)銀行",
"JXRCU": "江西省農(nóng)村信用",
"ICBC": "中國工商銀行",
"JZBANK": "晉中市商業(yè)銀行",
"HZCCB": "湖州市商業(yè)銀行",
"NHB": "南海農(nóng)村信用聯(lián)社",
"XXBANK": "新鄉(xiāng)銀行",
"JRCB": "江蘇江陰農(nóng)村商業(yè)銀行",
"YNRCC": "云南省農(nóng)村信用社",
"ABC": "中國農(nóng)業(yè)銀行",
"GXRCU": "廣西省農(nóng)村信用",
"PSBC": "中國郵政儲(chǔ)蓄銀行",
"BZMD": "駐馬店銀行",
"ARCU": "安徽省農(nóng)村信用社",
"GSRCU": "甘肅省農(nóng)村信用",
"LYCB": "遼陽市商業(yè)銀行",
"JLRCU": "吉林農(nóng)信",
"URMQCCB": "烏魯木齊市商業(yè)銀行",
"XLBANK": "中山小欖村鎮(zhèn)銀行",
"CSCB": "長沙銀行",
"JHBANK": "金華銀行",
"BHB": "河北銀行",
"NBYZ": "鄞州銀行",
"LSBC": "臨商銀行",
"BOCD": "承德銀行",
"SDRCU": "山東農(nóng)信",
"NCB": "南昌銀行",
"TCCB": "天津銀行",
"WJRCB": "吳江農(nóng)商銀行",
"CBBQS": "城市商業(yè)銀行資金清算中心",
"HBRCU": "河北省農(nóng)村信用社"
}
第三點(diǎn):
如何顯示銀行對應(yīng)的logo?
銀行的LOGO也可以用過支付寶提供的一個(gè)圖片API獲取。第一點(diǎn)中我們通過卡號獲取到了銀行名稱代碼等信息,此處即可使用以下鏈接顯示圖片:
https://apimg.alipay.com/combo.png?d=cashier&t=ABC(銀行簡稱-大寫)
完成整個(gè)需求,其實(shí)很簡單,也就這3個(gè)基本步驟。
寫的不夠完整,希望能幫到各位。
PS:這里再為大家推薦一款相關(guān)在線工具供大家參考:
在線銀行卡號歸屬地信息查詢工具:
http://tools.jb51.net/bianmin/bankinfo
更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計(jì)有所幫助。
- java實(shí)現(xiàn)銀行ATM管理系統(tǒng)
- Java實(shí)現(xiàn)基礎(chǔ)銀行ATM系統(tǒng)
- Java簡單實(shí)現(xiàn)銀行ATM系統(tǒng)
- java實(shí)現(xiàn)簡單銀行ATM系統(tǒng)
- Java實(shí)現(xiàn)簡單銀行ATM功能
- Java實(shí)現(xiàn)銀行ATM系統(tǒng)
- Java實(shí)現(xiàn)的校驗(yàn)銀行卡功能示例
- Java 模擬銀行自助終端系統(tǒng)
- java代碼實(shí)現(xiàn)銀行管理系統(tǒng)
- Java實(shí)現(xiàn)簡單控制臺(tái)版ATM系統(tǒng)
相關(guān)文章
深入學(xué)習(xí)Java編程中的字符串的進(jìn)階使用
這篇文章主要介紹了Java編程中的字符串的高級運(yùn)用,包括StringBuffer類和StringTokenizer類以及常量池的介紹,需要的朋友可以參考下2016-01-01
Java中的任務(wù)調(diào)度框架quartz詳細(xì)解析
這篇文章主要介紹了Java中的任務(wù)調(diào)度框架quartz詳細(xì)解析,Quartz 是一個(gè)完全由 Java 編寫的開源作業(yè)調(diào)度框架,為在 Java 應(yīng)用程序中進(jìn)行作業(yè)調(diào)度提供了簡單卻強(qiáng)大的機(jī)制,需要的朋友可以參考下2023-11-11

