如何根据银行卡号获取对应的银行编号,如:ICBC
最近项目里面需要使用一个东西,就是如何根据银行卡号获取对应的银行编号,如:ICBC,所以就在网上找了些资源,在此整理分享给大家。都是干货哦!
废话少说,直接上代码了。
package com.whb.utils;import java.io.InputStream;import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;/*** @author whb* @date 2018年9月28日 下午3:31:12 * @Description: 根据银行卡号获取对应的银行变化如:ICBC* https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardBinCheck=true&cardNo=6217360599000454941* {"cardType":"DC","bank":"ZJNX","key":"6217360599000454941","messages":[],"validated":true,"stat":"ok"}*/
public class BankCardNoUtil {private static Logger log = LoggerFactory.getLogger(BankCardNoUtil.class);private static CloseableHttpClient httpClient = HttpClients.createDefault();private static int TIMEOUT = 1800000;private static RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(TIMEOUT).setSocketTimeout(TIMEOUT).build();private static String RequestUrl = "https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardBinCheck=true&cardNo=";/*** 根据银行卡号获取对应的银行变化如:ICBC* @param bankCardId* @return*/public static String getBankCardNo(String bankCardId){try {String result = getString(RequestUrl+bankCardId, "UTF-8");if(StringUtils.isNotBlank(result)){JSONObject json = JSON.parseObject(result);boolean validated = json.getBoolean("validated");if(validated){return json.getString("bank");}}} catch (Exception e) {log.info("获取银行卡有误");}return null;}public static void main(String[] args) {System.out.println(BankCardNoUtil.getBankCardNo("6217360599000454941"));}/*** get方式调用http,返回byte[]* @param String url* @return byte[]* @throws Exception*/private static byte[] getBytes(String url) throws Exception {HttpGet request = null;try {// HTTP请求request = new HttpGet(url);request.setConfig(requestConfig);log.debug(request.getRequestLine().toString());// 发送请求,返回响应HttpResponse response = httpClient.execute(request);// 响应成功int statusCode = response.getStatusLine().getStatusCode();if (statusCode == HttpStatus.SC_OK) {InputStream stream = response.getEntity().getContent();return IOUtils.toByteArray(stream);}} catch (Exception e) {throw new Exception("GET请求失败:[" + url + "]", e);} finally {if (request != null) {try {request.releaseConnection();} catch (Exception e) {}}}return null;}/*** get方式调用http,返回String* * @param String url* @param String charsetName* @return String* @throws Exception*/private static String getString(String url, String charsetName) throws Exception {byte[] bytes = getBytes(url);if (bytes == null || bytes.length <= 0) {return "";}return new String(bytes, charsetName);}}
如果还想其他渠道去查询的话,这里有提供相关地址:查询银行卡归属http://www.guabu.com/bank/。
好了,满满的爱都给你们了。
如何根据银行卡号获取对应的银行编号,如:ICBC相关推荐
- 通过银行卡号获取银行卡所属银行
通过银行卡号获取银行名称的api接口, https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&am ...
- BankCardUtils(根据银行卡号 获取 银行卡类型、银行名称和银行编码 自动格式化银行卡号、手机号、身份证号输入的工具类)
BankCardUtils 根据银行卡号 获取 银行卡类型.银行名称和银行编码 自动格式化银行卡号.手机号.身份证号输入的工具类 效果图 特点 支持自动根据银行卡号获取出银行名称.银行编码.银行卡类型 ...
- BankCardUtils 根据银行卡号 获取 银行卡类型、银行名称和银行编码 自动格式化银行卡号、手机号、身份证号输入的工具类
BankCardUtils 项目地址:nanchen2251/BankCardUtils 简介:根据银行卡号 获取 银行卡类型.银行名称和银行编码 自动格式化银行卡号.手机号.身份证号输入的工具类 ...
- 前端根据银行卡号获取该银行卡的信息
由银行卡号获取银行信息 现如今用户体验真心重要,当然我们也是跟着客户的需求在不断提升 使用场景: 前台页面会出现一种情况就是,用户的银行卡号输入完成之后,会自动识别到该银行卡的信息并且显示出来 具体使 ...
- python获取进程编号(目的、获取当前进程编号、根据编号杀死指定进程号、获取当前父进程编号)
1. 获取进程编号的目的 获取进程编号的目的是验证主进程和子进程的关系,可以得知子进程是由那个主进程创建出来的. 获取进程编号的两种操作 获取当前进程编号 获取当前父进程编号 2. 获 ...
- 根据银行卡号获取开户行及银行卡类型的demo(python、android 和ios)
最近更新了一个项目:关于银行卡匹(根据银行卡号获取开户行以及银行卡类型等信息). CSDN下载地址:https://download.csdn.net/download/wy363681759/107 ...
- php银行卡哪家,PHP怎么实现的根据银行卡号判断是哪个银行?
PHP怎么实现的根据银行卡号判断是哪个银行? 提问: PHP怎么实现的根据银行卡号判断是哪个银行? 回答如下: bankList.php的内容会写在下面.请全选其中所有数据后,另存为bankList. ...
- 如何获取微众银行人工客服的联系方式?
如何获取微众银行人工客服的联系方式? 微众银行作为国内首家互联网银行,自上线以来就收到很多人的好评,凭借便捷的操作方式吸引了不少的用户.但对于一部分想要使用微众银行的人来讲,他们却不知如何使用,也不知 ...
- C/C++获取安卓手机IMEI编号demo
C/C++获取安卓手机IMEI编号demo #include <stdlib.h> #include <exception> #include <fstream> ...
最新文章
- MIT人工突触芯片新突破:指甲大小的芯片有望媲美超算
- 需要注意的小问题------闹的笑话
- Linux设备驱动之UART驱动结构
- 函数基本使用-函数的定义以及调用执行线路图
- Java——demo之仿ATM操作
- Spring Boot 入门小目标 3 --- 先来试着热部署
- 二分法查找是基于有序_201,查找顺序查找
- apache spark_如何将自定义数据源集成到Apache Spark中
- 2.apache模块mod_rpaf ,让nginx代理后端的apache获取访客真是IP
- 光绘文件 c语言 解析,AltiumDesigner输出光绘文件
- 局域网聊天的本质是函数
- Go语言操作MySQL的基础知识
- layey图片内容不居中
- 天翼校园客户端没有linux版本,Linux下突破校园天翼宽带客户端限制(已移植OpenWRT)...
- 自制VBS自动刷屏器,再也不怕刷屏刷不过别人了
- Nginx从入门到入坟(九)- Nginx静态资源如何防盗链
- Win7连接共享打印机时,报 0x00000bcb 错误
- python修改xml文件内容,不废话,拿来即用
- 【树莓派】树莓派官方系统Raspbian安装 Docker 和 青龙面板 挂JD库脚本 --详细教程,Centos和Ubuntu服务器可参考
- [C语言]指针之数组逆序函数:编写函数invert,将数组中的n个整数按相反顺序存放,要求用指针变量作为函数形参,并用指针的方法遍历该数组。在main函数中输入n个整数,存入数组a中;然后调用上述函
热门文章
- Vue.js 父组件向子组件传值和子组件向父组件传值
- 不会做课程大纲?吸人的课纲这样做才值钱
- [Python知识图谱] 三.Jieba工具中文分词、添加自定义词典及词性标注详解
- MATLAB中的概率论与数理统计
- 选择 UTF-8,结束纷争(转载) - 秋阳的软件测试专栏 - IT博客
- telegram机器人开发-1
- html5实现摄像头拍照并使用java进行照片保存
- 双系统在linux中修复引导文件夹,linux双系统引导修复
- 关于满意度调查报告--用SPSS输出各指标满意度得分和样本量
- 新零售 — RFID 应用案例