Atitit.会员卡(包括银行卡)api的设计

1. 银行卡的本质是一种商业机构会员卡1

2. 会员卡号结构组成1

2.1. ●前六位是:发行者标识代码 Issuer Identification Number (IIN)。1

2.2. ●中间的位数是:个人账号标识(从卡号第七位开始)6-12位数字2

2.3. ●最后一位位数是校验位2

2.4.  将卡号前面的数字采用Luhn算法计算出信用卡或者借记卡的最后一位数字。2

3. 银行卡号校验 (Luhn算法)2

4. LUHN公式2

4.1. 计算步骤3

5. 工具卡号判断银行3

5.1. 有效期4

5.2. 银行归属地查询4

1. 银行卡的本质是一种商业机构会员卡

第一张信用卡就是加油站 和餐厅 发行的。。

不过一般商业银行的会员卡可以提现,单也少部分不可或者有限制。。

其他机构发行的会员卡,根据各个机构不同而不同,有的可以提现,大部分不可提现。。

2. 会员卡号结构组成

其实我们的银行卡号一般是16位或者19位。由如下三部分构成。

2.1. ●前六位是:发行者标识代码 Issuer Identification Number (IIN)。

注意:当前已经用IIN替换了之前的发卡行识别码 Bank Identification Number (BIN).

其中第一位数字是主要产业标识符(Major Industry Identifier (MII)),下表列出了MII每个数字代表的卡号行业。

卡号首位

适用的目录

0

ISO/TC 68 和其他行业使用

1

航空

2

航空和其他未来行业使用

3

运输、娱乐和金融财务

4

金融财务

5

金融财务

6

商业和金融财务

7

石油和其他未来行业使用

8

医疗、电信和其他未来行业使用

9

由本国标准机构分配

下表列出了,不同卡号对应的发行机构。因此“中国银联”发行的卡一定是62开头;而国内使用Visa信用卡的人士其卡号会是4开头,而使用万事达(Matercard)的人士卡号一般以51、52、53、54、55打头。

2.2. ●中间的位数是:个人账号标识(从卡号第七位开始)6-12位数字

中间位数由发卡行自定义,一般由6-12位数字组成。最多可以使用12位数字。

每个银行的个人账号标识规则有所不同。有的银行在这部分内容中会包含分行、支行、储蓄网点等代码信息。有得银行可能就没有这么详细,会使用自然流水顺序码。

2.3. ●最后一位位数是校验位

2.4. 
将卡号前面的数字采用Luhn算法计算出信用卡或者借记卡的最后一位数字。

3. 银行卡号校验 (Luhn算法)

4. LUHN公式

编辑

本词条缺少信息栏名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!

LUHN公式(LUHN formula)也叫模数10(modulus 10),它是简单的数学运算,用来验证信用卡的编号。几乎所有的主要的信用卡发行公司的卡都是用它,这里面包括American Express、Visa、Master Card、Discover和Diner's Club。

它最初是在二十世纪六十年代由一群数学家创造出来的,LUHN公式是公开的,任何人都可以使用。

4.1. 计算步骤

编辑

LUHN公式通过一些简单的数学运算用信用卡号计算出一个校验数,它出现在信用卡号的最后一位。下面是这个公式的三个步骤:

1. 从倒数(右边的)第二个数字开始,把下一个数乘二并加在一起。

2. 从右到左,把跳过的数加到第一步的结果里。如果第一步中一个数字乘二之后结果导致出现两位数(如7+7=14),那么按照第二步在把出现的数字(1和4)加到第二步中。

3. 从下个高位以零结尾的数减去第二步得到的结果。结果将和校验位一致。

LUHN公式(LUHN formula)可以在给借方授权的时候把卡号发送前确保信用卡的有效性。在加拿大,它用来验证个人保险号。它并不检查信用卡的其他信息,包括卡是否过期。[1]

5. 工具卡号判断银行

位数少于14的卡号基本是外资银行,或小银行。

***496748***        **     HSBC                               HSBCHKHHHKH

***430259***        **     HSBC                               HSBCHKHHHKH

***51878018***     **    Bank of East Asia Limited      BEASHKHHXXX

位数多于23的卡号大多是卡号包含字母或空格。

62270014 **** 0045 ***      CHINA CONSTRUCTION BANK **

601382700 **** 9077 **      BANK OF CHINA FOSHAN BRANCH **

如果是国内的主流银行(中、农、工、建、招、交等)基本都是基于16位或者19位的卡号。

来看看提现成功(clear_success)里面的卡有多少满足Luhn规则

5.1. 有效期

5.2. 银行归属地查询

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )

汉字名:艾提拉(艾龙),   EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

6. 参考资料

银行卡号编码规则.html

银行卡号编码规则_昕中的世界_新浪博客.html

Atiend

Atitit.会员卡(包括银行卡)api的设计的更多相关文章

  1. atitit.基于http json api 接口设计 最佳实践 总结o7

    atitit.基于http  json  api 接口设计 最佳实践 总结o7 1. 需求:::服务器and android 端接口通讯 2 2. 接口开发的要点 2 2.1. 普通参数 meth,p ...

  2. Atitit 信用卡与会员卡(包括银行卡)的发展之路

    Atitit 信用卡与会员卡(包括银行卡)的发展之路 实现跨机构卡片内金额的流动解决方案 1.1. 财务卡片本质上都是会员卡1 1.2. 卡片的发展阶段1 2. 实现跨机构卡片内金额的流动解决方案(加 ...

  3. Atitit.自定义存储引擎的接口设计 api 标准化 attilax 总结  mysql

    Atitit.自定义存储引擎的接口设计 api 标准化 attilax 总结  mysql 1. 图16.1:MySQL体系结构1 2. 16.7. 创建表create()虚拟函数:2 3. 16.8 ...

  4. Atitit.跨语言系统服务管理器api兼容设计

    Atitit.跨语言系统服务管理器api兼容设计 1. Common api,兼容sc ,service control??1 1.1. 服务创建,use sc1 1.2. 服务delete ,use ...

  5. API的设计与安全

    前后端分离是个浪潮,原来只有APP客户端会考虑这些,现在连Web都要考虑前后端分离 . 这里面不得不谈的就是API的设计和安全性,这些个问题不解决好,将会给服务器安全和性能带来很大威胁 . API的设 ...

  6. Atitit Atitit.软件兼容性原理----------API兼容 Qa7

    Atitit Atitit.软件兼容性原理----------API兼容 Qa7 1. 兼容性的重要性与反面教材1 2. 提升兼容性的原则2 2.1. What 与how 分离2 2.2. 老人老办法 ...

  7. Atitit.加密算法ati Aes的框架设计

    Atitit.加密算法ati Aes的框架设计 版本进化 c:\1t\aesC47.java c:\1t\aes.java 增加了public static byte[] encrypt(byte[] ...

  8. Atitit.加密算法ati Aes的框架设计v2.2

    Atitit.加密算法ati Aes的框架设计v2.2 版本进化1 V2.2   add def decode key api1 v1版本1 Aes的历史2 Atitit.加密算法 des  aes  ...

  9. Web API接口设计经验总结

    在Web API接口的开发过程中,我们可能会碰到各种各样的问题,我在前面两篇随笔<Web API应用架构在Winform混合框架中的应用(1)>.<Web API应用架构在Winfo ...

随机推荐

  1. 时间同步ntp服务的安装与配置

    1,首先安装ntp服务. [root@localhost /]# yum install ntp -y 2,修改ntp配置文件.(ntp配置文件在:/etc/ntp.conf) [root@local ...

  2. VS2015调试UWP程序时提示错误DEP0700 : Registration of the app failed. Another user has already installed

    在同一台windows10电脑上调试过一个工程以后,切换了账号再次调试出现错误 DEP0700 : Registration of the app failed. Another user has a ...

  3. 网页加载图片原理<转>

    http://www.haorooms.com/post/web_http_request 图片的http请求,有很多种情况,那么究竟什么情况下面不会发生请求呢?下面我用案例一一列举一下,希望对你深入 ...

  4. BZOJ4170 极光(CDQ分治 或 树套树)

    传送门 BZOJ上的题目没有题面-- [样例输入] 3 5 2 4 3 Query 2 2 Modify 1 3 Query 2 2 Modify 1 2 Query 1 1 [样例输出] 2 3 3 ...

  5. Linux系统MySQL开启远程连接

    1.远程连接上Linux系统,确保Linux系统已经安装上了MySQL数据库.登陆数据库.mysql -uroot -p(密码). 2.创建用户用来远程连接 GRANT ALL PRIVILEGES ...

  6. pc端和android端应用程序测试有什么区别?(ps面试题)

    pc端和android端应用程序测试有什么区别?(ps面试题) [VIP7]大连-凭海临风(215687736) 2014/4/10 8:56:171.测试环境不同PC平台一般都是windows an ...

  7. linux sort,uniq,cut,wc命令详解

    linux sort,uniq,cut,wc命令详解 sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些 ...

  8. 回调函数(callback)

    参考维基百科链接: 中文:http://zh.wikipedia.org/wiki/%E5%9B%9E%E8%B0%83%E5%87%BD%E6%95%B0 英文:http://en.wikipedi ...

  9. 解剖SQLSERVER 第十七篇 使用 OrcaMDF Corruptor 故意损坏数据库(译)

    解剖SQLSERVER 第十七篇 使用 OrcaMDF Corruptor 故意损坏数据库(译) http://improve.dk/corrupting-databases-purpose-usin ...

  10. 使用百度网盘+Git,把版本控制托管到云端

    之前公司的一个项目使用SVN来做的版本控制,服务器设在我这台电脑上.然后是出于某些原因,我的电脑IP变了多次,每变一次就要重新绑定静态ip,甚是烦人.同时SVN这种集中式的版本控制服务在我关闭了我的电 ...