首页 > 代码库 > 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    脱机预授权交易


表示选择或执行脱机预授权交易:DF60的值02
表示选择或执行脱机预授权完成交易: DF60的值03
流程图参看规范13. 脱机预授权交易流程

 


文/闫鑫原创   转载请注明出处http://blog.csdn.net/yxstars/article/details/40350311

QPBOC扩展个人化及交易流程