通过银行卡号解析银行名称和卡别

3人阅读 评论(0) 收藏 举报
分类:
bankcard

前几天在支付宝添加银行卡的时候注意到输完卡号支付宝就自动识别了银行名称,所以用Firefox自带的工具看了一下实现方式,发现支付宝有一个 API 来做这个事情,只要依据固定的格式发送HTTP请求就可以获得JSON格式的结果,除了对应的银行名称代码之外,还有银行卡的类型(储蓄卡/信用卡)。

各种银行卡

把以下URL中的银行卡卡号替换成需要查询的真实卡号即可。

https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo=银行卡卡号&cardBinCheck=true

下面是一个农业银行的例子,当然卡号是假的,只是头6位是农行的BIN码而已。支付宝的这个API并没有使用LUHN算法来验证银行卡是否合法。

zhu@tp430:~/Dev/cnbankcard$ http "https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo=6228430120000000000&cardBinCheck=true"
HTTP/1.1 200 OK
Connection: keep-alive
Content-Language: zh-CN
Content-Length: 101
Content-Type: application/json;charset=GBK
Date: Sun, 08 Mar 2015 15:21:17 GMT
Server: spanner/1.0.6
Set-Cookie: JSESSIONID=CCDE8AA9E2DAEC082A7614734AF729FB; Path=/; HttpOnly
Set-Cookie: JSESSIONID=CCDE8AA9E2DAEC082A7614734AF729FB; Path=; Secure; HttpOnly
Set-Cookie: spanner=dauWw2JHEhbWoKV/zrMf2LLFCxFf8h1G;path=/;secure;
Strict-Transport-Security: max-age=31536000
 
{
    "bank": "ABC", 
    "cardType": "DC", 
    "key": "6228430120000000000", 
    "messages": [], 
    "stat": "ok", 
    "validated": true
}

因为JSON数据里的银行名称是英文代码,所以写了一个 Python 脚本支付宝的合作银行页面自动获取英文代码对应的中文银行名。

此外,银行的LOGO也可以用过支付宝提供的一个图片API获取。

https://apimg.alipay.com/combo.png?d=cashier&t=CEB

以上详情我都记录在cnbankcard这个Github Repo里。

其实背后的原理也很简单。一般来说,通过银行卡卡号的前6位BIN码可以得出该银行卡的发卡行,所以只要有一个事先准备好的字典,就能写一个简单的程序来通过银行卡卡号识别银行名称。网上有一些提供银行卡查询的网站,甚至能识别到归属地,部分还提供了收费API。不过既然支付宝有这种不公开的开放API,就不必去花钱了。


转载:http://www.digglife.net/articles/cnbankcard.html

查看评论

通过银行卡号获取所属银行名称

  • 2015年07月27日 17:20
  • 27KB
  • 下载

通过银行卡号获取银行名称

根据银行卡号找银行名称
  • fighterandknight
  • fighterandknight
  • 2016-06-12 10:17:39
  • 7827

根据银行卡号来获取银行名称-java

/** * 通过银行的Bin号 来获取 银行名称 * @author 一介草民 * */ public class BankUtil { public static void main(...
  • a1106900429
  • a1106900429
  • 2015-09-11 16:54:19
  • 9337

java 根据银行卡号来获取银行名称

原文地址:http://blog.csdn.net/a1106900429/article/details/48375031/** * 通过银行的Bin号 来获取 银行名称 * @auth...
  • qq_26761229
  • qq_26761229
  • 2016-11-21 18:25:21
  • 4791

Java 根据银行卡号获取银行名称以及图标

参考 CNBankCard 中国各大银行卡号查询 一、pom.xml 一、支付宝接口获取名称 1.根据 卡号 获取 银行信息 接口 https://ccdcapi.alipay.com/val...
  • N_007
  • N_007
  • 2017-12-18 17:54:24
  • 638

银行BIN码大全JSON数据,附带js根据银行卡号查询银行名称方法

  • 2015年10月13日 10:27
  • 279KB
  • 下载

js通过银行卡号获取所属银行,银行名称,银行编码,银行卡种

  • 2017年12月21日 17:35
  • 37KB
  • 下载

正则表达式—————根据银行卡号判断银行名称

#pragma mark - 根据银行卡号判断银行名称   + (NSString *)getBankName:(NSString*) cardId{       //发卡行.卡种名称     ...
  • st646889325
  • st646889325
  • 2016-11-16 09:17:14
  • 18821

java根据卡号识别银行

  • 2016年09月21日 15:14
  • 34KB
  • 下载

根据银行卡号识别银行卡类型(发行行、卡名、卡种<借记卡、贷记卡>)

  • 2015年12月03日 16:40
  • 555KB
  • 下载
    个人资料
    等级:
    访问量: 32万+
    积分: 4235
    排名: 8952
    微信公众号
    最新评论