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

时间:2022-09-02 20:50:04

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. Android数据加密之MD5加密

    前言: 项目中无论是密码的存储或者说判断文件是否是同一文件,都会用到MD5算法,今天来总结一下MD5加密算法. 什么是MD5加密? MD5英文全称“Message-Digest Algorithm 5 ...

  2. C&num;按照指定长度分割中英文字符串

    最近有一个需求:玩家发的不同长度文字,需要自适应行数. 初步实现想法很简单,直接获取字符数均分行数,再利用string.substring()切割即可.但是显而易见,由于一般字体下,中文显示宽度一般是 ...

  3. PHP Date &lpar; I need to use&rpar;

    本文记录项目中用到的 PHP Date 相关,备忘. 日期格式约定为 xx-xx-xx 格式(字符串),例如 2016-03-09. xx-xx-xx -> 时间戳 $date = " ...

  4. java枚举使用详解

    在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集” ...

  5. Entity Framework 6&period;0 源码解读笔记&lpar;一&rpar;

    internal static TResult ExecuteSingle<TResult>(IEnumerable<TResult> query, Expression qu ...

  6. 【又见LCS】NYOJ-37 回文字符串

    [题目链接] 回文字符串 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba& ...

  7. Qt 对象间的父子关系

    C++中只要有一个new就必须要有一个delete与之对应 但是Qt中的对象之间有特殊的关系 Qt 对象间的父子关系 每一个对象都保存有它所有子对象的指针 每一个对象都有一个指向其父对象的指针 par ...

  8. 【转】ActiveMQ与虚拟通道

    郑重提示,本文转载自http://shift-alt-ctrl.iteye.com/blog/2065436 ActiveMQ提供了虚拟通道的特性(Virtual Destination),它允许一个 ...

  9. HEAD FILE

    心血来潮做的沙雕Head,喜欢就拿去用吧,Explosion! HEAD //#pragma comment(linker, "/STACK:1024000000,1024000000&qu ...

  10. leetcode — add-binary

    /** * Source : https://oj.leetcode.com/problems/add-binary/ * * * Given two binary strings, return t ...