Atitit.会员卡(包括银行卡)api的设计
Atitit.会员卡(包括银行卡)api的设计
2.1. ●前六位是:发行者标识代码 Issuer Identification Number (IIN)。1
2.2. ●中间的位数是:个人账号标识(从卡号第七位开始)6-12位数字2
2.4. 将卡号前面的数字采用Luhn算法计算出信用卡或者借记卡的最后一位数字。2
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的设计的更多相关文章
- atitit.基于http json api 接口设计 最佳实践 总结o7
atitit.基于http json api 接口设计 最佳实践 总结o7 1. 需求:::服务器and android 端接口通讯 2 2. 接口开发的要点 2 2.1. 普通参数 meth,p ...
- Atitit 信用卡与会员卡(包括银行卡)的发展之路
Atitit 信用卡与会员卡(包括银行卡)的发展之路 实现跨机构卡片内金额的流动解决方案 1.1. 财务卡片本质上都是会员卡1 1.2. 卡片的发展阶段1 2. 实现跨机构卡片内金额的流动解决方案(加 ...
- Atitit.自定义存储引擎的接口设计 api 标准化 attilax 总结 mysql
Atitit.自定义存储引擎的接口设计 api 标准化 attilax 总结 mysql 1. 图16.1:MySQL体系结构1 2. 16.7. 创建表create()虚拟函数:2 3. 16.8 ...
- Atitit.跨语言系统服务管理器api兼容设计
Atitit.跨语言系统服务管理器api兼容设计 1. Common api,兼容sc ,service control??1 1.1. 服务创建,use sc1 1.2. 服务delete ,use ...
- API的设计与安全
前后端分离是个浪潮,原来只有APP客户端会考虑这些,现在连Web都要考虑前后端分离 . 这里面不得不谈的就是API的设计和安全性,这些个问题不解决好,将会给服务器安全和性能带来很大威胁 . API的设 ...
- Atitit Atitit.软件兼容性原理----------API兼容 Qa7
Atitit Atitit.软件兼容性原理----------API兼容 Qa7 1. 兼容性的重要性与反面教材1 2. 提升兼容性的原则2 2.1. What 与how 分离2 2.2. 老人老办法 ...
- Atitit.加密算法ati Aes的框架设计
Atitit.加密算法ati Aes的框架设计 版本进化 c:\1t\aesC47.java c:\1t\aes.java 增加了public static byte[] encrypt(byte[] ...
- 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 ...
- Web API接口设计经验总结
在Web API接口的开发过程中,我们可能会碰到各种各样的问题,我在前面两篇随笔<Web API应用架构在Winform混合框架中的应用(1)>.<Web API应用架构在Winfo ...
随机推荐
- ubuntu搜不到wifi信号
很多人刚刚装完ubuntu发现搜不到wifi信号,输入命令查看配置发现没有无线网卡驱动, 其实ubuntu是可以自动识别无线网卡自动安装驱动的,此时只需输入命令更新一下即可, 连上有线网,在终端输入此 ...
- JavaScript-navigator_userAgent-编写一段代码能够区分浏览器的主流和区分
1 userAgent:包含浏览器名称和版本号的字符串 <!DOCTYPE html> <html> <head lang="en"> < ...
- H5、CSS3属性的支持性以及flex
一.项目中用到一个flex属性,但是应用了flex的父容器只设置了width,没有设置height,此时每一个应用了上面提到的属性的样式的div都重叠在了一起,在IE10,IE11出问题,IE9没有问 ...
- jQuery - 自定义伪类 [:pseudoclass]
有两种创建伪类的方法, 第一种, $.extend( $.expr[':'], { // 自定义的伪类名称:group group: function(element, index, matches, ...
- [UE4]逻辑状态机组件
逻辑状态机 为了实现对目标状态的控制,以及广播改变状态后的事件,可在蓝图中继续处理不同状态下的行为. 实现过程: 1.继承ActorComponent实现LogicStateMachine: 2.被击 ...
- Linux系统安装VMware tools
VMware tools还是挺有用的,在两个不同系统随意拖拽文件,甚至文字的复制粘贴,功能强大. 废话不多说... 虽然VMware tools的安装帮助文档写的不错但是实际操作中发现,...还是有坑 ...
- 在ubuntu上配置nginx+php+mysql+phpmyadmin
1.先更新ubuntu系统 更新命令 sudo apt-get update sudo apt-get upgrade 2 添加ubuntu nginx更新源镜像 cd /etc/apt/ sudo ...
- Android--Alarm机制
1.Alarm 能够实现 Android 中的定时任务,它与 Java 中的 Timer类的区别在于,Android 系统在休眠状态下时 Timer 类中的定时任务可能无法正常运行,而 Alarm 机 ...
- 有关google的小问题
从本周的开始,突然发现自己的浏览器打不开google了,我的默认浏览器是qq的,不过使用的也是google搜索.刚开始我以为是浏览器中毒了,就重新下了一个,结果还是同样的情况,而且我使用搜狗或者百度的 ...
- 练习1-23:删去C语言程序中所有的注释语句(C程序设计语言 第2版)
#include <stdio.h> main() { FILE * fp_i; FILE * fp_o; fp_i = fopen("input.txt", &quo ...