银行卡信用卡的支付测试
一、银行卡
(1)卡号规则
银行卡卡号长度一般是15-19位,常见的是18位、19位。最后一位是校验位,它是怎么校验的呢??如果你学会了该算法,可以在Excel中设置一个校验公式,当用户输入了错误的银行卡时,给予提示,如果你是软件开发者,学会改算法,可以校验用户输入的银行卡是否正确。
(2)方法/步骤
(3)图解方法
图解:
设卡号:
1 3 8 6 2 6 7 1 8 check
×2 = 2 16 4 14 16
--------------------------------------------------------------
2 +3+1+6+6+4+6+1+4+1+1+6 = x
判断 (( x + check )%10 == 0 )表达式是否为真即可。
(4)代码
- 
BOOL LuhmCheck( LPCSTR lpszCard, BOOL bCheck = TRUE )
{
int nLength = strlen( lpszCard );
if( nLength != 16 && nLength != 19 )
return FALSE;
if( !bCheck )
return TRUE;
int nCheck = ( lpszCard[ nLength - 1 ] - '0' );
int sum = 0;
nLength -= 2;
for( int i = 0; i <= nLength; ++ i )
{
int j = nLength - i;
int w = lpszCard[ j ] - '0';
if( i % 2 == 0 )
{
int n = w * 2;
if( n > 9 )
{
sum += ( n % 10 );
sum += ( n / 10 );
}
else
sum += n;
}
else
{
sum += w;
}
}
if(( sum + nCheck ) % 10 == 0 )
return TRUE;
else
return FALSE;
}
 
二、信用卡
(1)卡号规则:
信用卡卡号规则及识别办法:
| 
 发卡银行  | 
 卡种  | 
 位数  | 
 特征  | 
| 
 中国银行  | 
 长城卡  | 
 16  | 
 首位数字为‘8’(8030为上海卡)或前6位为‘547766’、‘558868’、‘518378’、‘518379’、‘518474’、 ‘518475’、‘518476’、‘424106’、‘424107’、‘424108’、‘424109’、‘424110’、‘424111’ 、 ‘438088’、‘438089’、‘356833’、‘356835’  | 
| 
 中国工商银行  | 
 牡丹卡  | 
 16  | 
 前5位‘45806’、‘53098’、‘42701’、‘42702’、‘42703’、‘55836’、‘53099’、‘53097’, 前6位‘451804’、‘451810’、‘451811’、‘458071’, 第6位至第9位‘0348’和第7位至第10位‘0348’、‘0350’为上海卡  | 
| 
 15  | 
 前6位‘370246’、‘370247’  | 
||
| 
 中国建设银行  | 
 龙卡  | 
 16 18  | 
 前5位:53242(后3位‘269--289’为上海卡), 前6位:544033、453242(后3位‘226--289’为上海卡)、491031 前6位:553242,前7位4033、5453242、5491031 前六位:526410,524094,552245,421349,434061,434062  | 
| 
 龙卡国际普通卡VISA  | 
 16  | 
 4367 4500、4367 4502(需提供背面7位校验码后3位)  | 
|
| 
 龙卡国际金卡 VISA  | 
 16  | 
 4367 4800、4367 4802(需提供背面7位校验码后3位) 436718、436738  | 
|
| 
 龙卡国际普通卡MASTER  | 
 16  | 
 5324 5000、5324 5050、5324 5002(需提供背面7位校验码后3位)  | 
|
| 
 龙卡国际金卡 MASTER  | 
 16  | 
 5324 5800、5324 5850、5324 5802(需提供背面7位校验码后3位)  | 
|
| 
 中国农业银行  | 
 金穗卡  | 
 16  | 
 前五位:49102,53591  | 
| 
 中国交通银行  | 
 太平洋卡(上海地区)  | 
 16  | 
 53783,49104 (第7到9位为011) 62225(第7到9位为011)(需提供背面7位校验码后3位)  | 
| 
 中国招商银行  | 
 国际卡  | 
 16  | 
 前5位:439188,(VISA)439225,439226,(MASTER)518710,518718  | 
| 
 广东发展银行  | 
 广发卡  | 
 
  | 
 前六位:491032, 491033, 491034, 491035, 491036, 491037, 491038, 493427, 436768, 436769, 436770, 436771, 428911, 406365, 406366, 548844, 518364, 541709, 541710, 520152, 520382  | 
| 
 光大银行  | 
 阳光卡  | 
 16  | 
 前七位:4062540,4062520,4062521 前八位:40625220,40625221,40625222,40625223,40625224  | 
| 
 民生银行  | 
 信用卡  | 
 16  | 
 前六位:421869, 421870, 421871, 407405, 517636, 512466, 528948, 552288, 556610  | 
| 
 中信银行  | 
 信用卡  | 
 16  | 
 前六位:403391, 403392, 403393, 404157, 404158, 404159, 518212, 520108, 514906, 556617, 558916, 433667, 433666  | 
| 
 上海浦东发展银行  | 
 信用卡  | 
 16  | 
 前六位:407438, 404739, 498451(需提供背面7位校验码后3位)  | 
| 
 外卡  | 
 VISA(威士)  | 
 13,16  | 
 4  | 
| 
 外卡  | 
 MASTER(万事达)  | 
 16  | 
 51-55  | 
| 
 外卡  | 
 AMEX(运通)  | 
 15  | 
 34,37  | 
| 
 外卡  | 
 DINNERS(大来)  | 
 14  | 
 300-305,36,38  | 
| 
 外卡  | 
 JCB  | 
 16 15  | 
 3 2131,1800  | 
例如:Test VISA credit card number: 4005550000000019
| Test Credit Card Numbers | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  | 
Test Credit Card Numbers:  | 
|
| Visa: | 4111-1111-1111-1111 | 
| MasterCard: | 5431-1111-1111-1111 | 
| Amex: | 341-1111-1111-1111 | 
| Discover: | 6011-6011-6011-6611 | 
| Credit Card Prefix Numbers: | |
| Visa: | 13 or 16 numbers starting with 4 | 
| MasterCard: | 16 numbers starting with 5 | 
| Discover: | 16 numbers starting with 6011 | 
| AMEX: | 15 numbers starting with 34 or 37 | 
三、支付流程图:

四、支付接口
银行卡校验算法,hex上有库luhn,各种银行卡都适用,不限于信用卡。
# mix.exs
defp deps do
  [
    {:luhn, "~> 0.3.0"}
  ]
end
辨别银行卡,只需知道卡号前几位。
判断银行卡类型, hex仓库有:
{:credit_card, "~> 1.0"}
国内提供银行卡认证的网站(主要是一些数据服务公司):
- 聚合数据 https://www.juhe.cn/docs/api/id/188
 - 易源数据 https://www.showapi.com/api/lookPoint/1072
 - 阿凡达数据 http://avatardata.cn/Docs/Api/fd78bda0-4561-4e0f-8e0e-48b2022a5d59
 - APIX https://www.apix.cn/services/show/190
 
信用卡相关支付系统:
来源:http://www.infomerchant.net/creditcardprocessing/credit_card_test_numbers.html
                    
                
                
            
        
浙公网安备 33010602011771号