持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第12天,点击查看活动详情
前言
最近由于项目需要用到银行卡号识别归属行的需求,在网上找了很多资料,看到有一些是输入前几位就能识别出对应的归属行,有些是输入完整的卡号才能识别。第一种没找到这样开放的API,另一方面项目也不考虑增加额外的付费成本,最后就选择了阿里支付宝的一个API,这是一个输入完整卡号去识别归属行的API。
API使用
实现功能
能够准确识别是否存在,归属行,卡号类型是储蓄卡(DC)还是信用卡(CC)
接口
ccdcapi.alipay.com/validateAnd…
请求方式
post请求
url上需要带上三个参数,第一个是input_charset编码,可不传。
第二个是参数 cardNo 是银行卡号 必传。
第三个参数是卡本,一般传true。
请求展示
这是项目里一个添加银行卡的操作界面,我在在上面输入银行卡号
可以看到下面的日志,不断输入验证。当输入完整卡号后,就能识别出对应的银行了。
返回结果
{"cardType":"DC","bank":"GLBANK","key":"62145620000194093","messages":[],"validated":true,"stat":"ok"}
参数解析
cardType:卡类型。值:DC为储蓄卡,CC为信用卡。
bank:所属行。值:所属行简称,GLBANK 为桂林银行,所属行简称详见下方。
key:银行卡号。值:传入的银行卡号。
messages:银行卡信息。值:数组。
validated:有效性,是否正确有效。值:true为是,false为否。
stat:银行卡状态。值:ok,no。
银行卡数据补充
我们根据返回的结果,通过bank去匹配我们配置的一份银行卡归属行数据,去得到对应银行的名字,如下是一份匹配的数据
bankType: { 'CDB': '国家开发银行', 'ICBC': '中国工商银行', 'ABC': '中国农业银行', 'BOC': '中国银行', 'CCB': '中国建设银行', 'PSBC': '中国邮政储蓄银行', 'COMM': '交通银行', 'CMB': '招商银行', 'SPDB': '上海浦东发展银行', 'CIB': '兴业银行', 'HXBANK': '华夏银行', 'GDB': '广东发展银行', 'CMBC': '中国民生银行', 'CITIC': '中信银行', 'CEB': '中国光大银行', 'EGBANK': '恒丰银行', 'CZBANK': '浙商银行', 'BOHAIB': '渤海银行', 'SPABANK': '平安银行', 'SHRCB': '上海农村商业银行', 'YXCCB': '玉溪市商业银行', 'YDRCB': '尧都农商行', 'BJBANK': '北京银行', 'SHBANK': '上海银行', 'JSBANK': '江苏银行', 'HZCB': '杭州银行', 'NJCB': '南京银行', 'NBBANK': '宁波银行', 'HSBANK': '徽商银行', 'CSCB': '长沙银行', 'CDCB': '成都银行', 'CQBANK': '重庆银行', 'DLB': '大连银行', 'NCB': '南昌银行', 'FJHXBC': '福建海峡银行', 'HKB': '汉口银行', 'WZCB': '温州银行', 'QDCCB': '青岛银行', 'TZCB': '台州银行', 'JXBANK': '嘉兴银行', 'CSRCB': '常熟农村商业银行', 'NHB': '南海农村信用联社', 'CZRCB': '常州农村信用联社', 'H3CB': '内蒙古银行', 'SXCB': '绍兴银行', 'SDEB': '顺德农商银行', 'WJRCB': '吴江农商银行', 'ZBCB': '齐商银行', 'GYCB': '贵阳市商业银行', 'ZYCBANK': '遵义市商业银行', 'HZCCB': '湖州市商业银行', 'DAQINGB': '龙江银行', 'JINCHB': '晋城银行JCBANK', 'ZJTLCB': '浙江泰隆商业银行', 'GDRCC': '广东省农村信用社联合社', 'DRCBCL': '东莞农村商业银行', 'MTBANK': '浙江民泰商业银行', 'GCB': '广州银行', 'LYCB': '辽阳市商业银行', 'JSRCU': '江苏省农村信用联合社', 'LANGFB': '廊坊银行', 'CZCB': '浙江稠州商业银行', 'DYCB': '德阳商业银行', 'JZBANK': '晋中市商业银行', 'BOSZ': '苏州银行', 'GLBANK': '桂林银行', 'URMQCCB': '乌鲁木齐市商业银行', 'CDRCB': '成都农商银行', 'ZRCBANK': '张家港农村商业银行', 'BOD': '东莞银行', 'LSBANK': '莱商银行', 'BJRCB': '北京农村商业银行', 'TRCB': '天津农商银行', 'SRBANK': '上饶银行', 'FDB': '富滇银行', 'CRCBANK': '重庆农村商业银行', 'ASCB': '鞍山银行', 'NXBANK': '宁夏银行', 'BHB': '河北银行', 'HRXJB': '华融湘江银行', 'ZGCCB': '自贡市商业银行', 'YNRCC': '云南省农村信用社', 'JLBANK': '吉林银行', 'DYCCB': '东营市商业银行', 'KLB': '昆仑银行', 'ORBANK': '鄂尔多斯银行', 'XTB': '邢台银行', 'JSB': '晋商银行', 'TCCB': '天津银行', 'BOYK': '营口银行', 'JLRCU': '吉林农信', 'SDRCU': '山东农信', 'XABANK': '西安银行', 'HBRCU': '河北省农村信用社', 'NXRCU': '宁夏黄河农村商业银行', 'GZRCU': '贵州省农村信用社', 'FXCB': '阜新银行', 'HBHSBANK': '湖北银行黄石分行', 'ZJNX': '浙江省农村信用社联合社', 'XXBANK': '新乡银行', 'HBYCBANK': '湖北银行宜昌分行', 'LSCCB': '乐山市商业银行', 'TCRCB': '江苏太仓农村商业银行', 'BZMD': '驻马店银行', 'GZB': '赣州银行', 'WRCB': '无锡农村商业银行', 'BGB': '广西北部湾银行', 'GRCB': '广州农商银行', 'JRCB': '江苏江阴农村商业银行', 'BOP': '平顶山银行', 'TACCB': '泰安市商业银行', 'CGNB': '南充市商业银行', 'CCQTGB': '重庆三峡银行', 'XLBANK': '中山小榄村镇银行', 'HDBANK': '邯郸银行', 'KORLABANK': '库尔勒市商业银行', 'BOJZ': '锦州银行', 'QLBANK': '齐鲁银行', 'BOQH': '青海银行', 'YQCCB': '阳泉银行', 'SJBANK': '盛京银行', 'FSCB': '抚顺银行', 'ZZBANK': '郑州银行', 'SRCB': '深圳农村商业银行', 'BANKWF': '潍坊银行', 'JJBANK': '九江银行', 'JXRCU': '江西省农村信用', 'HNRCU': '河南省农村信用', 'GSRCU': '甘肃省农村信用', 'SCRCU': '四川省农村信用', 'GXRCU': '广西省农村信用', 'SXRCCU': '陕西信合', 'WHRCB': '武汉农村商业银行', 'YBCCB': '宜宾市商业银行', 'KSRB': '昆山农村商业银行', 'SZSBK': '石嘴山银行', 'HSBK': '衡水银行', 'XYBANK': '信阳银行', 'NBYZ': '鄞州银行', 'ZJKCCB': '张家口市商业银行', 'XCYH': '许昌银行', 'JNBANK': '济宁银行', 'CBKF': '开封市商业银行', 'WHCCB': '威海市商业银行', 'HBC': '湖北银行', 'BOCD': '承德银行', 'BODD': '丹东银行', 'JHBANK': '金华银行', 'BOCY': '朝阳银行', 'LSBC': '临商银行', 'BSB': '包商银行', 'LZYH': '兰州银行', 'BOZK': '周口银行', 'DZBANK': '德州银行', 'SCCB': '三门峡银行', 'AYCB': '安阳银行', 'ARCU': '安徽省农村信用社', 'HURCB': '湖北省农村信用社', 'HNRCC': '湖南省农村信用社', 'NYNB': '广东南粤银行', 'LYBANK': '洛阳银行', 'NHQS': '农信银清算中心', 'CBBQS': '城市商业银行资金清算中心' },
这里已经存在大部分银行了,如果有缺失的,可以自行补充。
总结
如果不想要付费的API,那么阿里的这个我觉得可以用一用,也能满足大部分的需求了。