首页 > 代码库 > QPBOC扩展个人化及交易流程
QPBOC扩展个人化及交易流程
1 Q扩展部分数据需写入3个DGI中,分别为:A001,8020,9020
1.1 A001扩展应用配置
DGI | 长度 | 值(示例) |
A001 | 7*N | 15 01 00 00 FF 00 00 数据按7个字节为一个单元进行组织,每个单元对应一个扩展应用文件的配置信息,解析如下: 1字节扩展应用文件SFI; 1字节文件类型:01表示变长记录文件, 02表示循环记录文件; 1字节读权限:00表示采用Read CAPP Cache指令读 1字节写权限:00表示采用Update CAPP Cache指令更新 1字节单条记录最大长度:限制可以使用记录的最大长度 2字节文件大小配置:对于变长记录文件, 2字节表示预设的文件大小,00 00表示大小不限制;对于循环记录文件,为1字节记录条数和1字节记录大小。 可以根据应用需要使用的扩展应用文件的实际数量和实际SFI,对该DGI的数据域进行调整。每7个字节组成的单元的数量和顺序,决定了后续8020数据域内开通密钥的数量和顺序,必须一一对应。 |
1.2 8020扩展应用开通子密钥
DGI数据组成及顺序如下,密钥顺序按照A001中定义的文件SFI顺序进行匹配,对应设置为每个文件的开通密钥。
DGI | Len | Value |
8020 | 10*N | 0x13文件扩展应用开通保护密钥(16字节) 0x14文件扩展应用开通保护密钥(16字节) ……….
|
1.3 9020:扩展应用开通密钥校验值
DGI数据组成如下,其中校验值(KCV)由8020中的每条密钥对8字节00加密后取左3字节组成,校验值密钥顺序必须与8020中的密钥顺序一致。
DGI | Len | Value |
9020 | 03*N | 0x13文件复合应用开通保护密钥校验值(3字节) 0x14文件复合应用开通保护密钥校验值(3字节) ……. |
2 Append Record增加行业应用记录
CPURESET() 00A4040008A000000333010101 80CA9F3605(ATC+9000) ATC=COPY(ATC,7,4) ATC=000000000000+ATC CAPPK1= D5F1FE4A7F8C20FDEC49150BA2E00EDF//应用开通密钥 CAPPK2= D5F1FE4A7F8C20FDEC49150BA2E00EDF//记录修改密钥 //写入0X16变成文件记录 B0:10110 000 ECB_3DES_EN(CAPPK2,CAPPK1,KEY2) HMD=04E200A81E+KEY2+057007+STRING(0,07) // TLV 3DES_MAC(ATC+HMD+8000000000,CAPPK1,MAC) HMD+MAC //写入0X1e循环文件记录 ECB_3DES_EN(CAPPK2,CAPPK1,KEY2) HMD=04E200F01E+KEY2+057007+STRING(0,07) 3DES_MAC(ATC+HMD+8000000000,CAPPK1,MAC) HMD+MAC 详见规范14 A.3新增记录( RECORD APPEND命令 )
3 (读取扩展应用数据)命令 DATACAPP READ
CPURESET() 00A4040008A000000333010101 80B400A8020570 //读取0X15变成文件,ID为0570的记录 00B201F400 //读取0X1E循环文件,第一条记录
4 分段扣费交易流程
4.1 DF60=01
2> 应用初始化(必备): <commad 00A4040008A000000333010101 /> <return6F608408A000000333010101A554500A50424F432044454249548701019F381B9F66049F02069F03069F1A0295055F2A029A039C019F3704DF60015F2D027A689F1101019F120A50424F43204445424954BF0C0E9F4D020B0ADF4D020C0ADF610102 /> 2.1> READ CAPPDATA: √ 卡片既支持分段扣费功能也支持脱机预授权功能 <commad 80B400b0020570 /> //读取16文件记录 <return 05700700000000000000 /> <commad80A8000024832227000080000000000100000000000000015600000000000156141020011122334401/> <return …9000> 注:必须在GPO完成后,才可更新记录 2.3> UPDATECAPP DATA: //更新16文件记录 <commad 84DE00b00e057007000000000000001F20E0B0 /> <return 9000 />
4.2 DF60=01,RMAC方式读
</pre><pre code_snippet_id="491671" snippet_file_name="blog_20141021_2_5217923" name="code" class="cpp">2.1> READ CAPPDATA: √ 卡片既支持分段扣费功能也支持脱机预授权功能 <commad 80B400b00A05701234567812345678 /> <return 057007000000000000001C895F11(4字节的RMAC) /> <commad80A8000024832227000080000000000100000000000000015600000000000156141020011122334401/> <return …9000 /> 2.3> UPDATECAPP DATA: <commad 84DE00b00e0570070000000000000017B8E975 /> <return 57C6C544(4字节的RMAC) />
4.3 流程图
5 脱机预授权交易
QPBOC扩展个人化及交易流程