PBOC流程解析(一) 应用选择及应用初始化

POS规范 -- IC卡操作流程 2016/09/03

主要参考IC卡规范第4(借贷记应用规范),5(卡片规范),6(应用终端规范)部分。

本系列后续流程同样来自 xuture的专栏

(一)总流程

应用选择

1.目录选择方法

从卡片上称为支付系统环境(PSE)的主文件[1PAY.SYS.DDF01]开始,搜索其下的树型卡片文 件结构,得到与终端匹配的候选应用列表。卡片对目录选择方法是可选的,但终端必须支持目录选择方法. 如果卡片返回的AID不在终端支持的AID列表中,交易失败直接退出

2.AID列表方法

终端根据终端应用列表依次发SELECT命令,如果卡片也支持该应用,终端将其加入候选应用列表。 如此最终获取卡片和终端共同支持的候选应用列表。终端必须支持AID列表方法。

应用初始化 GPO

GPO返回有两个数据,AIP和AFL. 应用选择完成后,终端获取到了PDOL数据. 后面举例说明.

(二)资料解析

1.目录选择方法

  • PBOC 选择PSE【1PAY.SYS.DDF01】得到SFI[命令:00 A4 ]
  • QPBOC 选择的是PPSE【2PAY.SYS.DDF01】
  • 根据SFI选择到AID[命令 00 B2]
  • 选择AID读取到应用信息GPO[命令 80 A8][包括9f38(PDOL)及87(应用优先指示器)]

应用选择指示器(ASI –DF01)表明终端的应用标识符须要完整匹配(长度和值都相同)还是只须要部分 匹配卡片中相关的ADF名(标签为4F)…卡片中的应用AID可以更长一些

2.AID列表方法

依次验证终端支持的AID来判断卡片是否支持(终端支持的AID参数列表通过IC卡参数下载得到)

举例如下(通过select命令) send:14 00 A4 04 00 08 A0 00 00 03 33 01 01 06 00 rec:3 6A 82

send:14 00 A4 04 00 08 A0 00 00 03 33 01 01 01 00 rec:74 6F 45 84 08 A0 00 00 03 33 01 01 01 A5 39 50 0A 50 42 4F 43 20 44 45 42 49 54 87 01 01 9F 38 09 9F 7A 01 9F 02 06 5F 2A 02 5F 2D 02 7A 68 9F 11 01 01 9F 12 0A 50 42 4F 43 20 44 45 42 49 54 BF 0C 05 9F 4D 02 0B 0A 90 00 send:1

00 A4 04 00 08 A0 00 00 03 33 01 01 02 00 rec:3 6A 82

(三)源码片段分析

((sfi&0x1F)<<3)|0x04 // 用来偏移读取AID;

(四)常见问题及分析

1.PBOC需要根据选择PSE返回的SFI读记录获取AID,再根据AID去选择ADF,再去读数据.

QPBOC在选择PPSE之后就可以获取到AID(可能是多个),直接选择ADF了.

QPBOC不支持持卡人选择应用,所以如果有多个AID的时候,需要根据应用优先级选择优先级最高的AID.

2.Q不支持AID列表选择法,Q不支持持卡人选择应用;

3.通过SFI(88)选择到AID需要注意计算;

现在我们已经通过选择AID得到了GPO(9F38)数据了.注意这里要循环下去(增加记录号就行),直到返回68A3. 第一次发送00B2010C00 ,第二次发送00B2020C00

4.GPO命令解析

IC卡返回的 800E7C00080102001001040118010100

解析一下: 80 0E(长度) `7C00(AIP)` 08010200 10010401 18010100(3组AFL)

AIP: 通过AIP的返回来判断用什么方式脱机数据认证 CDA > DDA > SDA(判断有顺序)

#defineAIP_SDA_Support(x)	(*(x)&0x40)
#defineAIP_DDA_Support(x)	(*(x)&0x20)
#defineAIP_CV_Support(x)	(*(x)&0x10)
#defineAIP_TRM_Support(x)	(*(x)&0x08)
#defineAIP_IA_Support(x)	(*(x)&0x04)
#defineAIP_CDA_Support(x)	(*(x)&0x01)
#defineAIP_MSD_Support(x)	(*(x+1)&0x80)

AFL: 后续第二阶段的读取交易应用数据需要根据AFL来判断,AFL的解析就到后面来解释



扫描关注我

(转载本站文章请注明作者和出处 Undefined

Post Directory