目录
一、PBOC/EMV-交易流程说明对比
PBOC和EMV都是与银行卡支付相关的技术标准,但是在交易流程方面有一些不同之处。
PBOC(人民银行支付系统)是中国银行卡支付系统的技术标准,在交易过程中,卡片和终端设备之间的通讯是基于密钥加密的方式进行的。在PBOC交易流程中,银行卡会被插入到POS终端设备中,然后进行密码验证和授权,之后授权请求会发送到银行端进行处理,最后完成交易。
EMV(Europay,Mastercard和Visa),是由欧洲银行卡联盟(Europay)和美国Mastercard和Visa公司开发的技术标准,在交易过程中,卡片和终端设备之间的通讯是基于动态加密的方式进行的。在EMV交易流程中,银行卡会被插入到POS终端设备中,然后进行密码验证和授权,但不同之处在于,授权请求会在卡片内部进行加密,并由卡片向银行端发送,银行端进行解密和处理,最后完成交易。
总体来说,两种交易流程都是安全可靠的,但EMV更倾向于在卡片内部进行加密和处理,这提高了交易的保密性和安全性。
二、消费成功
ATR(复位应答) - 3B 62 00 00 81 82
TS ='3B' 指明正向
T0 = '62' TB1和TC1存在,2表示历史字节的存在个数为2
TB1 present ‘00’
TC1 present ‘00’
TD1 ‘81’ TA2到TC2不存在,TD2存在,使用T=1协议
TD2 ‘82’ TA3到TC3不存在,使用T=1协议
三、应用选择(第一步+第二步)
第一步选择环境
通过文件名或AID来选择IC卡中的PSE或ADF)
SELECT命令
选择PSE:
00A4 04 00 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 00
发送
IFD(接口设备): 00 A4 04 00 0E
IFD: 31 50 41 59 2E 53 59 53 2E 44 44 46 3031 00
CLA: ’00’
INS: ’A4’
P1(引用控制参数): ’04‘(金融应用中,P1都是填04,b3等于1表示通过名称选择)
P2:‘00’ (00代表第一个或仅有一个)
Lc: 0E(14个字节)
Data: 31 50 41 59 2E 53 59 53 2E 44 44 4630 31 (文件名)
Le: ‘00’
选择环境:00 A4 04 00 0E 31 5041 59 2E 53 59 53 2E 44 44 46 30 31 00
接收:
6F 24 84 0E 31 50 41 59 2E 53 59 53 2E 4444 46
30 31 A5 12 88 01 01 5F 2D 08 65 73 65 6E66 72
64 65 9F 11 01 01 90 00
FCI模板:6F 长度:24
专用(DF)文件名称:84 长度0E 值:31 50 41 59 2E 5359 53 2E 44 44 46 30 31
FCI专有模板:A5 长度:12 值:88 01 01 5F 2D 0865 73 65 6E 66 72 64 65 9F 11
01 01
短文件标识符(SFI):88 长度:01 值:01(未移过的SFI值,需右移3位)
(只告诉我们SFI=1,读完文件1的全部数据)
首选语言:5F2D 长度:08 值:65 73 65 6E 66 72 6465
发卡行代码索引:9F11 长度:01 值:01
ICC: SW1 SW2 = 90 00 => Successful
第二步选择应用
读记录(READRECORD)命令
AEF(应用基本文件)=P1+P2即SFI+记录号
读取SFI=1文件第1条记录
发送:00 B2 01 0C 00
CLA: ’00’
INS: ’B2’
P1(记录号): ’01‘
P2(引用控制参数):‘0C’(00001100,00001说明SFI=1,100中b3=1代表读P1指定记录,这个命令都是拿SFI与ox04异或)
Le: ‘00’
接收
70 2A 61 28 4F 07 A0 00 00 00 03 10 10 500A 56
49 53 41 43 52 45 44 49 54 87 01 01 9F 120D 43
52 45 44 49 54 4F 44 45 56 49 53 41 90 00
应用基本数据模板:70 长度:2A 值:
61 28 4F 07 A0 0000 00 03 10 10 50 0A 56 49 53
41 43 5245 44 49 54 87 01 01 9F 12 0D 43 52 45
44 49 544F 44 45 56 49 53 41
应用模板:61 长度:28 值:
4F 07 A0 00 00 0003 10 10 50 0A 56 49 53 41 43
52 45 44 49 5487 01 01 9F 12 0D 43 52 45 44 49
54 4F 44 45 5649 53 41
应用标识符(AID,读记录):4F 长度:07 值:
A0 00 00 00 03 10 10
(从TAG 4F中得到了1个卡片支持的应用AID:A0 00 00 00 03 10 10)
应用标签(读记录选择):50 长度:0A 值:
56 49 53 41 43 5245 44 49 54
应用优先指示器(读记录选择):87 长度:01 值:
01
应用首选名称(读记录选择):9F12 长度:0D 值:
43 52 45 44 49 54 4F 44 45 56 49 53 41
ICC: SW1 SW2 = 90 00 => Successful
读取SFI=1文件第2条记录
发送:00 B2 02 0C 00
CLA: ’00’
INS: ’B2’
P1(记录号): ’02‘
P2(引用控制参数):‘0C’
Le: ‘00’
ICC: SW1 SW2 = 6A 83 => 记录号不存在6A83表示记录未找到,说明已经读到最后一条记录
SELECT命令选择文件
选择ADF:
00 A4 04 00 07 A0 00 00 00 03 10 10 00
发送
IFD: 00A4 04 00 07
IFD: A000 00 00 03 10 10 00
CLA: ’00’
INS: ’A4’
P1(引用控制参数):’04‘
P2:‘00’
Lc: 07
Data: A0 00 00 00 03 10 10
Le: ‘00’
根据选择环境得到的AID,我们发送的时候A404的时候,选择了A0 00 00 0003 10 10
接收
6F 32 84 07 A0 00 00 00 03 10