package com.allinpay.utils;import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;import java.util.HashMap;/*** @author 林少爷* @version V1.0* @Package com.allinpay.utils* @date 2022-10-12 15:55* @Copyright © IBM*/
public class BankCardUtil {private static final HashMap<String, String> BANK_NAME_MAP;private static final HashMap<String, String> BANK_TYPE;static {BANK_NAME_MAP = new HashMap<>(256);BANK_TYPE = new HashMap<>(2);BANK_TYPE.put("DC", "储蓄卡");BANK_TYPE.put("CC", "信用卡");BANK_NAME_MAP.put("CDB", " 国家开发银行");BANK_NAME_MAP.put("ICBC", " 中国工商银行");BANK_NAME_MAP.put("ABC", " 中国农业银行");BANK_NAME_MAP.put("BOC", " 中国银行");BANK_NAME_MAP.put("CCB", " 中国建设银行");BANK_NAME_MAP.put("PSBC", " 中国邮政储蓄银行");BANK_NAME_MAP.put("COMM", " 交通银行");BANK_NAME_MAP.put("CMB", " 招商银行");BANK_NAME_MAP.put("SPDB", " 上海浦东发展银行");BANK_NAME_MAP.put("CIB", " 兴业银行");BANK_NAME_MAP.put("HXBANK", " 华夏银行");BANK_NAME_MAP.put("GDB", " 广东发展银行");BANK_NAME_MAP.put("CMBC", " 中国民生银行");BANK_NAME_MAP.put("CITIC", " 中信银行");BANK_NAME_MAP.put("CEB", " 中国光大银行");BANK_NAME_MAP.put("EGBANK", " 恒丰银行");BANK_NAME_MAP.put("CZBANK", " 浙商银行");BANK_NAME_MAP.put("BOHAIB", " 渤海银行");BANK_NAME_MAP.put("SPABANK", " 平安银行");BANK_NAME_MAP.put("SHRCB", " 上海农村商业银行");BANK_NAME_MAP.put("YXCCB", " 玉溪市商业银行");BANK_NAME_MAP.put("YDRCB", " 尧都农商行");BANK_NAME_MAP.put("BJBANK", " 北京银行");BANK_NAME_MAP.put("SHBANK", " 上海银行");BANK_NAME_MAP.put("JSBANK", " 江苏银行");BANK_NAME_MAP.put("HZCB", " 杭州银行");BANK_NAME_MAP.put("NJCB", " 南京银行");BANK_NAME_MAP.put("NBBANK", " 宁波银行");BANK_NAME_MAP.put("HSBANK", " 徽商银行");BANK_NAME_MAP.put("CSCB", " 长沙银行");BANK_NAME_MAP.put("CDCB", " 成都银行");BANK_NAME_MAP.put("CQBANK", " 重庆银行");BANK_NAME_MAP.put("DLB", " 大连银行");BANK_NAME_MAP.put("NCB", " 南昌银行");BANK_NAME_MAP.put("FJHXBC", " 福建海峡银行");BANK_NAME_MAP.put("HKB", " 汉口银行");BANK_NAME_MAP.put("WZCB", " 温州银行");BANK_NAME_MAP.put("QDCCB", " 青岛银行");BANK_NAME_MAP.put("TZCB", " 台州银行");BANK_NAME_MAP.put("JXBANK", " 嘉兴银行");BANK_NAME_MAP.put("CSRCB", " 常熟农村商业银行");BANK_NAME_MAP.put("NHB", " 南海农村信用联社");BANK_NAME_MAP.put("CZRCB", " 常州农村信用联社");BANK_NAME_MAP.put("H3CB", " 内蒙古银行");BANK_NAME_MAP.put("SXCB", " 绍兴银行");BANK_NAME_MAP.put("SDEB", " 顺德农商银行");BANK_NAME_MAP.put("WJRCB", " 吴江农商银行");BANK_NAME_MAP.put("ZBCB", " 齐商银行");BANK_NAME_MAP.put("GYCB", " 贵阳市商业银行");BANK_NAME_MAP.put("ZYCBANK", " 遵义市商业银行");BANK_NAME_MAP.put("HZCCB", " 湖州市商业银行");BANK_NAME_MAP.put("DAQINGB", " 龙江银行");BANK_NAME_MAP.put("JINCHB", " 晋城银行JCBANK");BANK_NAME_MAP.put("ZJTLCB", " 浙江泰隆商业银行");BANK_NAME_MAP.put("GDRCC", " 广东省农村信用社联合社");BANK_NAME_MAP.put("DRCBCL", " 东莞农村商业银行");BANK_NAME_MAP.put("MTBANK", " 浙江民泰商业银行");BANK_NAME_MAP.put("GCB", " 广州银行");BANK_NAME_MAP.put("LYCB", " 辽阳市商业银行");BANK_NAME_MAP.put("JSRCU", " 江苏省农村信用联合社");BANK_NAME_MAP.put("LANGFB", " 廊坊银行");BANK_NAME_MAP.put("CZCB", " 浙江稠州商业银行");BANK_NAME_MAP.put("DYCB", " 德阳商业银行");BANK_NAME_MAP.put("JZBANK", " 晋中市商业银行");BANK_NAME_MAP.put("BOSZ", " 苏州银行");BANK_NAME_MAP.put("GLBANK", " 桂林银行");BANK_NAME_MAP.put("URMQCCB", " 乌鲁木齐市商业银行");BANK_NAME_MAP.put("CDRCB", " 成都农商银行");BANK_NAME_MAP.put("ZRCBANK", " 张家港农村商业银行");BANK_NAME_MAP.put("BOD", " 东莞银行");BANK_NAME_MAP.put("LSBANK", " 莱商银行");BANK_NAME_MAP.put("BJRCB", " 北京农村商业银行");BANK_NAME_MAP.put("TRCB", " 天津农商银行");BANK_NAME_MAP.put("SRBANK", " 上饶银行");BANK_NAME_MAP.put("FDB", " 富滇银行");BANK_NAME_MAP.put("CRCBANK", " 重庆农村商业银行");BANK_NAME_MAP.put("ASCB", " 鞍山银行");BANK_NAME_MAP.put("NXBANK", " 宁夏银行");BANK_NAME_MAP.put("BHB", " 河北银行");BANK_NAME_MAP.put("HRXJB", " 华融湘江银行");BANK_NAME_MAP.put("ZGCCB", " 自贡市商业银行");BANK_NAME_MAP.put("YNRCC", " 云南省农村信用社");BANK_NAME_MAP.put("JLBANK", " 吉林银行");BANK_NAME_MAP.put("DYCCB", " 东营市商业银行");BANK_NAME_MAP.put("KLB", " 昆仑银行");BANK_NAME_MAP.put("ORBANK", " 鄂尔多斯银行");BANK_NAME_MAP.put("XTB", " 邢台银行");BANK_NAME_MAP.put("JSB", " 晋商银行");BANK_NAME_MAP.put("TCCB", " 天津银行");BANK_NAME_MAP.put("BOYK", " 营口银行");BANK_NAME_MAP.put("JLRCU", " 吉林农信");BANK_NAME_MAP.put("SDRCU", " 山东农信");BANK_NAME_MAP.put("XABANK", " 西安银行");BANK_NAME_MAP.put("HBRCU", " 河北省农村信用社");BANK_NAME_MAP.put("NXRCU", " 宁夏黄河农村商业银行");BANK_NAME_MAP.put("GZRCU", " 贵州省农村信用社");BANK_NAME_MAP.put("FXCB", " 阜新银行");BANK_NAME_MAP.put("HBHSBANK", " 湖北银行黄石分行");BANK_NAME_MAP.put("ZJNX", " 浙江省农村信用社联合社");BANK_NAME_MAP.put("XXBANK", " 新乡银行");BANK_NAME_MAP.put("HBYCBANK", " 湖北银行宜昌分行");BANK_NAME_MAP.put("LSCCB", " 乐山市商业银行");BANK_NAME_MAP.put("TCRCB", " 江苏太仓农村商业银行");BANK_NAME_MAP.put("BZMD", " 驻马店银行");BANK_NAME_MAP.put("GZB", " 赣州银行");BANK_NAME_MAP.put("WRCB", " 无锡农村商业银行");BANK_NAME_MAP.put("BGB", " 广西北部湾银行");BANK_NAME_MAP.put("GRCB", " 广州农商银行");BANK_NAME_MAP.put("JRCB", " 江苏江阴农村商业银行");BANK_NAME_MAP.put("BOP", " 平顶山银行");BANK_NAME_MAP.put("TACCB", " 泰安市商业银行");BANK_NAME_MAP.put("CGNB", " 南充市商业银行");BANK_NAME_MAP.put("CCQTGB", " 重庆三峡银行");BANK_NAME_MAP.put("XLBANK", " 中山小榄村镇银行");BANK_NAME_MAP.put("HDBANK", " 邯郸银行");BANK_NAME_MAP.put("KORLABANK", " 库尔勒市商业银行");BANK_NAME_MAP.put("BOJZ", " 锦州银行");BANK_NAME_MAP.put("QLBANK", " 齐鲁银行");BANK_NAME_MAP.put("BOQH", " 青海银行");BANK_NAME_MAP.put("YQCCB", " 阳泉银行");BANK_NAME_MAP.put("SJBANK", " 盛京银行");BANK_NAME_MAP.put("FSCB", " 抚顺银行");BANK_NAME_MAP.put("ZZBANK", " 郑州银行");BANK_NAME_MAP.put("SRCB", " 深圳农村商业银行");BANK_NAME_MAP.put("BANKWF", " 潍坊银行");BANK_NAME_MAP.put("JJBANK", " 九江银行");BANK_NAME_MAP.put("JXRCU", " 江西省农村信用");BANK_NAME_MAP.put("HNRCU", " 河南省农村信用");BANK_NAME_MAP.put("GSRCU", " 甘肃省农村信用");BANK_NAME_MAP.put("SCRCU", " 四川省农村信用");BANK_NAME_MAP.put("GXRCU", " 广西省农村信用");BANK_NAME_MAP.put("SXRCCU", " 陕西信合");BANK_NAME_MAP.put("WHRCB", " 武汉农村商业银行");BANK_NAME_MAP.put("YBCCB", " 宜宾市商业银行");BANK_NAME_MAP.put("KSRB", " 昆山农村商业银行");BANK_NAME_MAP.put("SZSBK", " 石嘴山银行");BANK_NAME_MAP.put("HSBK", " 衡水银行");BANK_NAME_MAP.put("XYBANK", " 信阳银行");BANK_NAME_MAP.put("NBYZ", " 鄞州银行");BANK_NAME_MAP.put("ZJKCCB", " 张家口市商业银行");BANK_NAME_MAP.put("XCYH", " 许昌银行");BANK_NAME_MAP.put("JNBANK", " 济宁银行");BANK_NAME_MAP.put("CBKF", " 开封市商业银行");BANK_NAME_MAP.put("WHCCB", " 威海市商业银行");BANK_NAME_MAP.put("HBC", " 湖北银行");BANK_NAME_MAP.put("BOCD", " 承德银行");BANK_NAME_MAP.put("BODD", " 丹东银行");BANK_NAME_MAP.put("JHBANK", " 金华银行");BANK_NAME_MAP.put("BOCY", " 朝阳银行");BANK_NAME_MAP.put("LSBC", " 临商银行");BANK_NAME_MAP.put("BSB", " 包商银行");BANK_NAME_MAP.put("LZYH", " 兰州银行");BANK_NAME_MAP.put("BOZK", " 周口银行");BANK_NAME_MAP.put("DZBANK", " 德州银行");BANK_NAME_MAP.put("SCCB", " 三门峡银行");BANK_NAME_MAP.put("AYCB", " 安阳银行");BANK_NAME_MAP.put("ARCU", " 安徽省农村信用社");BANK_NAME_MAP.put("HURCB", " 湖北省农村信用社");BANK_NAME_MAP.put("HNRCC", " 湖南省农村信用社");BANK_NAME_MAP.put("NYNB", " 广东南粤银行");BANK_NAME_MAP.put("LYBANK", " 洛阳银行");BANK_NAME_MAP.put("NHQS", " 农信银清算中心");BANK_NAME_MAP.put("CBBQS", " 城市商业银行资金清算中心");}/*** 判断验证银行卡** @param bankCardNo 银行卡号* @return boolean*/public boolean verifyBankCard(String bankCardNo) {String result = HttpRequest.get("https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo=" + bankCardNo + "&cardBinCheck=true").execute().body();if (StrUtil.isNotBlank(result)) {JSONObject data = JSONUtil.parseObj(result);return "ok".equals(data.getStr("stat", "fail")) && "true".equals(data.getStr("validated", "false"));}return false;}/*** 获取银行卡信息** @param bankCardNo 银行卡号* @return JSONObject*/public JSONObject getBankCardInfo(String bankCardNo) {String result = HttpRequest.get("https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo=" + bankCardNo + "&cardBinCheck=true").execute().body();if (StrUtil.isNotBlank(result)) {JSONObject data = JSONUtil.parseObj(result);if ("ok".equals(data.getStr("stat", "fail")) && "true".equals(data.getStr("validated", "false"))) {JSONObject res = JSONUtil.createObj();res.putOpt("cardType", BANK_TYPE.get(data.getStr("cardType")));res.putOpt("bankName", BANK_NAME_MAP.get(data.getStr("bank")));res.putOpt("bankCardNo", bankCardNo);return res;}}return null;}}

JAVA --银行卡正则校验工具类相关推荐

  1. java 身份证正则校验工具类

    import java.text.SimpleDateFormat; import java.util.Date;/** * 验证身份证号码 身份证号码, 可以解析身份证号码的各个字段, * 以及验证 ...

  2. java身份证号码校验工具类

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...

  3. Java后端手机号校验工具类

    package com.cn.test.tset;import org.apache.commons.lang.StringUtils;import java.util.regex.Pattern;/ ...

  4. java简单密码校验工具类及弱密码说明

    1.连续性弱密码校验 描述:密码连续性校验是指123456,654321,abcdefg,gfedcba等数字和字母顺序是连续的字符称之为连续性弱密码. 校验方式:PassWordUtil.java通 ...

  5. java 身份证号码校验工具类

    import org.slf4j.Logger; import org.slf4j.LoggerFactory;/*** 校验身份证*/ public class IdCardUtil {privat ...

  6. Java正则表达式校验工具类_【Java工具类】----正则表达式校验工具类

    /** * @Title: RegexValidateUtil.java * @Package org.csun.nc.util * @Description: TODO * @author chis ...

  7. 组织机构代码和统一社会信用代码校验规则以及java校验工具类

    组织机构代码 编码规则编辑 1.全国组织机构代码由八位数字(或大写拉丁字母)本体代码和一位数字(或大写拉丁字母)校验码组成. 本体代码采用系列(即分区段)顺序编码方法. 校验码按照以下公式计算: C9 ...

  8. java md5验证工具_Java MD5校验工具类

    之前使用到了NIO的FileChannel做文件快速阅读,后来发现存在一个巨大的BUG,使用它会一直不释放文件句柄,即生成MD5的文件不能操作(移动或删除等),这个BUG网上吵得沸沸扬扬,至今没有解决 ...

  9. Java身份证校验工具类

    Java身份证校验工具类 工作中经常会涉及到身份证的校验,而且需求不同,有的需要校验最后一位校验位,有的不需要,这里参考了几篇文章及自己工作中用到的情况写了一个工具类.记录一下,菜鸟一个,大佬勿喷. ...

最新文章

  1. iOS开发拓展篇—CoreLocation简单介绍
  2. Silverlight、JavaFX、Flex技术比较
  3. Python 2 最后一个版本发布,正式迈入 Python 3 时代
  4. 《Netty权威指南》
  5. 同方挑战惠普 大打“惠民”牌
  6. 内置函数补充 之 反射
  7. PC电脑 屏幕竖直截长屏、本地视频转码、本地视频转gif动画、gif压缩等
  8. 小红书CTO山丘:用户隐私保护是数据应用的第一前提
  9. 牛根生--蒙牛创业故事
  10. python爬虫抖音音浪_【Python爬虫】抖音去水印
  11. oracle学习笔记---oracle10g 卸载方法
  12. .net mysql字符串截取_MySQL 字符串拆分操作(含分隔符的字符串截取)
  13. EAS 后台事务定时执行设置
  14. 核心路由器十项性能指标(转)
  15. 点连线的思路与js的简单实现
  16. 单片机实现模块化编程:思维+实例+系统教程(实用程度令人发指)
  17. 计算机怎么打开隐藏的项目,展示win10系统怎么打开隐藏文件夹
  18. 工作了这么长时间,是不是非用macbook pro不可呢?
  19. 第十单元---前后连调
  20. 服务器Networking Latency测试

热门文章

  1. F460最新光猫破解
  2. [RK3288][Android6.0] Skia中的编解码小结
  3. git---全局设置用户名、密码、邮箱
  4. C语言位操作--判断整数的符号
  5. cmd命令和终端怎么实现切换目录
  6. 聚合易支付,支付宝免签约即时到账,财付通免签约,微信免签约支付,QQ钱包免签约,免签约支付
  7. 【感悟】20岁的人生不应该停止奋斗。----------------努力努力再努力
  8. 如何更新计算机的flash player,flash插件如何升级?win7升级flash插件的方法
  9. 两种解读,生活的意义和方法
  10. 百度网盘NDM高速下载