根据卡号查询银行名接口目前免费阿里接口
一、背景
通过支付宝API解析银行卡号发卡行和银行卡类别、获取银行LOGO(126px*36px)
二、API
1、银行卡号API
请求地址:
https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo=输入待校验的银行卡号&cardBinCheck=true
请求参数
字段 | 说明 |
---|---|
cardNo | 银行卡号 |
cardBinCheck | 是否校验支付宝已绑此卡 |
_input_charset | 编码格式 |
返回的参数解析:
{
"bank":"GDB",//所属行简写
"validated":true,
"cardType":"DC",
"key":"",
"messages":[
],
"stat":"ok"
}
2、银行LOGO API
必须使用支付宝内置的银行代码才能获得正确结果,见银行代码
接口中必须将银行代码全部大写
请求地址及参数
https://apimg.alipay.com/combo.png?d=cashier&t=ICBC
请求方式 | 响应说明 |
---|---|
浏览器 | 直接显示银行LOGO,代码不存在则显示空白背景 |
HTTP | 响应文件输入流,直接读取输入流存入磁盘即可 |
下图为银行logo示例:
开户行以及对应code如下:
{
"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":"河北省农村信用社"
}
三、获取开户行code
package groovy
import groovy.json.JsonSlurper
import org.apache.http.HttpResponse
import org.apache.http.util.EntityUtils
class cardno_validate {
def handle(map){
def result = [:]
def card_no = map.card_no
//https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?cardNo=1111&cardBinCheck=true
def host = "https://ccdcapi.alipay.com/"
def path = "validateAndCacheCardInfo.json"
def querys = ["cardNo":card_no,"cardBinCheck":"true"]
HttpResponse response = HttpUtils.doGet(host,path,querys,querys)
def json = EntityUtils.toString(response.getEntity())
def bank_map = ["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":"城市商业银行资金清算中心"]
def obj = new JsonSlurper().parseText(json)
if (obj.validated){
result.result = "success"
def bank_name = bank_map.get(obj.bank)
result.data = ["validated":true,"card_no":card_no,"bank_name":bank_name]
result.msg = "银行卡号正确"
}else{
result.result = "failure"
result.msg = "银行卡号不存在"
result.data = null
}
return MukiUtils.filter(result)
}
static main(args){
def map = ["card_no":""]
def test = new cardno_validate()
def msg = test.handle(map)
println(msg)
}
}