ImageVerifierCode 换一换
格式:DOCX , 页数:71 ,大小:463.25KB ,
资源ID:29352635      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29352635.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(手机支付协议规范商用版 V15.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

手机支付协议规范商用版 V15.docx

1、手机支付协议规范商用版 V15手机支付协议规范(商用版)V1.42009-10-10陈君目 录:1 概述 32 文件结构概要图 33 操作流程 43.1 银行卡交易流程及协议 43.1.1 刷卡交易流程图 43.1.2 步骤说明 63.1.3 指令集 73.2 电子钱包交易流程及协议 143.2.1 电子钱包圈存交易流程图 143.2.2 圈存交易步骤说明 163.2.3 圈存交易指令集 173.2.4 电子钱包消费交易流程图 243.2.5 消费交易步骤说明 253.2.6 消费交易指令集 263.3 电子票据交互流程及协议 333.3.1 电子票据读取部分 333.3.2 电子票据写入部分

2、 363.3.3 指令集 383.4 身份识别交互流程及协议 463.4.1 身份识别交互流程图 463.4.2 步骤说明 473.4.3 指令集 483.5 卡片公共信息交互流程及协议 543.5.1 交互流程图 543.5.2 步骤说明 563.5.3 指令集 574 安全机制 624.1 加解密算法 624.2 密钥管理 634.2.1 共存应用 634.2.2 密钥的独立性 634.2.3 密钥的属性 634.2.4 密钥的使用 644.2.5 过程密钥的产生 641 概述本文档讲述了手机支付在POS终端机上应用时,交易流程及接口协议,供开发人员使用。本规范定义POS机与SEIMMA卡

3、之间的通讯规范及协议。 本规范中定义的四种应用类型,允许相互嵌套使用。2 文件结构概要图图-2.0 文件结构图3 操作流程下图为设备使用示意图:图-3.0 设备使用示意图3.1 银行卡交易流程及协议POS机与SEIMMA卡交互过程中,使用下述交易指令,实现刷卡操作。POS机与SEIMMA卡交互时,将使用SEIMMA卡的手机放置于距离读写器 10cm范围内。3.1.1 刷卡交易流程图下图为SEIMMA卡刷卡交易流程图,POS机通过以下流程,与SEIMMA卡进行刷卡交易。 图-3.1.0刷卡交易流程3.1.2 步骤说明(1) POS机上支付类别选择:收银员在POS机上将支付类别选为“手机银行卡消费

4、”,并且在“手机消费选择”菜单中选择“银行卡消费”。效果图参考手机支付在POS机终端上的应用中“银行卡刷卡应用”。(2) POS机发送寻找手机指令:POS机发送CONNECT指令,此时读写器会通过无线通道寻找周围可用于支付的SEIMMA卡,并返回找寻结果。(3) POS机发送刷卡交易初始化指令:POS机发送InitMC命令,SEIMMA卡收到后给出响应。POS机校验MAC1值,若MAC1正确,且手机响应为“执行正常”信息,则进入步骤4;若MAC1校验错误,或响应为错误信息或没有收到SEIMMA卡响应,则发送DISCONNECT命令,终止连接,POS机提示相关错误信息。(4) POS机发送读取磁

5、道信息指令:POS机发送ReadMC命令,SEIMMA卡收到命令后校验POS机给出MAC2值是否正确,若MAC2正确,则SEIMMA卡回复磁道信息数据;若MAC2错误,则SEIMMA卡回复MAC2校验错误信息。POS机判断SEIMMA卡响应为“执行正常”信息时,则进入步骤5;若SEIMMA卡响应为错误信息或没有收到SEIMMA卡响应,则发送DISCONNECT命令,终止连接,POS机提示相关错误信息。(5) POS机输入交易金额:收银员在POS机上输入交易金额后进入步骤6。目前单笔刷卡消费最大金额为9999.99。(6) 用户输入交易密码:密码输入环节支持两种方式:(一)用户在密码键盘上输入6

6、位密码后,POS将数据发送到银行端,银行反馈正常,则进入步骤7;否则,POS机显示“帐户或密码错误”或者其他相关错误信息,然后发送DISCONNECT命令,交易结束。(二)POS机上设置一个功能键,按一下直接跳过密码输入环节,进入步骤7。(方式二 暂预留)(7) POS机打印交易明细,并保存记录:POS机打印出交易明细,并且将此次交易记录保存在POS机内,供当天对帐时查阅、打印。进入步骤8。(8) POS机将交易记录返回给手机:POS机发送Transmit_Consume_Note命令,SEIMMA卡收到后给出响应。若SEIMMA卡响应为“执行正常”时,则进入步骤9。 若SEIMMA卡响应为错

7、误信息或没有收到SEIMMA卡响应,则由POS机根据实际情况,决定是否需要重发该命令。若不再发送该命令,则进入步骤9。(9) POS机发送读取签名信息指令: 若在步骤3,InitMC命令的应答数据中,表示签名字节长度2个字节为“00H 00H”,则POS提示“无签名图片”,并且跳过该步骤,发送DISCONNECT命令,交易完成。否则,POS机重复发送Read_Share_Sign命令(见3.5.3.4),直到签名数据读取完毕,每次SEIMMA卡收到命令后给出响应。POS机判断每次响应是否为“执行正常”信息,若全部为“执行正常”则显示签名图片,然后发送DISCONNECT命令,交易完成。若响应为

8、错误信息或没有收到SEIMMA卡响应,可考虑重发,或者发送DISCONNECT命令,终止连接,POS机提示 “读取签名失败”信息。3.1.3 指令集3.1.3.1 CONNECT(寻找手机)功能:CONNECT命令用于建立读写器与使用SEIMMA卡手机之间的连接。具体指令格式请参考读写器(POPmate)上位机通信协议1.7文档中“找卡”章节3.1.3.2 InitMC(刷卡交易初始化)3.1.3.2.1 定义和范围 POS机发送该命令,初始化银行卡卡消费,把POS终端机编号和密钥索引号传给SEIMMA卡,并从SEIMMA卡中获取Read MC命令的响应数据长度,签名字节数,SEIMMA卡的I

9、D号,4字节随机数和MAC1值。POS机通过验证MAC1值,可以辨别SEIMMA卡的真伪。3.1.3.2.2 命令报文代码值(16进制表示)CLA 80INS 11P100P200Lc07DATA见表2Le13 表1-InitMC命令报文3.1.3.2.3 命令报文数据域InitMC命令的数据内容如下:说明长度(字节)终端机编号(POS机)6密钥索引1表 2- InitMC命令报文数据域3.1.3.2.4 响应报文数据域响应报文的数据内容如下:说明长度(字节)Read MC指令响应数据长度1签名字节长度2SEIMMA卡的ID号8伪随机数4MAC14表 3- InitMC命令的响应报文数据域 计

10、算MAC1的过程密钥由密钥标识符指定的银行卡消费子密钥分别对(4字节伪随机数+终端机编号的前4位) 加密生成过程密钥的左8位。再对(终端机编号的后2位+80 00 00 00 00 00)加密生成过程密钥的右8位。MAC1由卡中过程密钥对(1字节Read MC指令响应数据长度+2字节签名字节长度+8字节SEIMMA卡的ID号+4字节伪随机数)进行MAC计算生成,计算过程中的初始向量为“00 00 00 00 00 00 00 00”。3.1.3.2.5 响应报文状态码此命令正常执行返回表 4所描述的数据域和状态码6113具体状态码的含义如下表所示:SW1 SW2意义61 13命令执行正常,有1

11、9个字节的响应数据。可用Get Response命令取回响应数据。67 00Lc长度不正确69 82不满足安全条件(不满足密钥访问条件)69 83认证方式已被锁定6A 82文件未找到6A 86P1, P2参数不正确6A 88未知道密钥文件6E 00命令类型CLA错94 03密钥索引不支持 表4-InitMC命令的响应报文状态3.1.3.3 ReadMC(读银行卡信息指令)3.1.3.3.1 定义和范围该命令用于将银行卡的磁道信息从SEIMMA卡中读出。3.1.3.3.2 命令报文ReadMC命令报文如下:代码值(16进制表示)CLA 80INS 13P100P200Lc04DATA见表6LeX

12、X表示所要返回的数据长度 表5-ReadMC命令报文3.1.3.3.3 命令报文数据域ReadMC命令的数据内容如下:说明长度(字节)MC24表 6- ReadMC命令报文数据域 MAC2由终端中过程密钥对(6字节POS终端机编号+4字节伪随机数)进行MAC计算生成,计算过程中的初始向量为“00 00 00 00 00 00 00 00”,其中过程密钥与计算MAC1时的过程密钥相同。 MAC2的过程密钥计算方法与MAC1的过程密钥一致。见3.1.3.2.4章节,关于MAC1过程密钥计算部分内容。3.1.3.3.4 响应报文数据域ReadMC命令响应报文数据域说明:说明字节磁道数据Le 表 7-

13、 ReadMC响应报文数据域 磁道数据用Tag(标签) ,Len(长度), Val(值)表示,第一磁道 的Tag = 0x01;第二磁道Tag = 0x02; 第三磁道Tag = 0x03.例如: 第一磁道在SEIMMA卡中的值为:0x11,22,33.第二磁道在SEIMMA卡中的值为:0xaa,0xbb.第三磁道在SEIMMA卡中的值为:0x77,0x88 则返回的磁道数据表示为:0x01 0x03 0x11 0x22 0x33 0x02 0x02 0xaa 0xbb 0x03 0x02 0x77 0x88. 以上磁道数据用十六进制数表示,第一磁道最大长度为79个字节,第二磁道最大长度为40

14、个字节,第三磁道最大长度为107个字节。磁道数据格式请参考银行磁条卡磁道格式和使用规范。3.1.3.3.5 响应报文状态码状态字节的含义如下表所示:SW1 SW2意义61 XX命令执行正常,有XX个字节的响应数据。可用Get Response命令取回响应数据。67 00Lc长度不正确69 01交易不连贯69 88MAC不正确6A 86P1,P2参数不正确6E 00命令类型(CLA)错 表 8- ReadMC命令响应报文状态码3.1.3.4 Transmit_Consume_Note(返回消费记录指令)3.1.3.4.1 定义和范围POS终端机用该命令将消费信息返回给SEIMMA卡。3.1.3.

15、4.2 命令报文Transmit_Consume_Note命令报文:代码值(16进制表示)CLA 84INS 15P100P200Lc4FDATA消费记录信息+MAC3,见表10Le不存在 表 9- Transmit_Consume_Note命令的命令报文3.1.3.4.3 命令报文数据域Transmit_Consume_Note命令的命令报文数据域说明字节商户名称(国标码,不足20字节补空格)20商家号(ASCII码)15终端编号(ASCII码)4交易类型(字节码)1卡号长度(BCD码)1卡号内容(BCD码,不足10字节 补0x00)10交易金额(BCD码,整数4个字节,小数2个字节)6批次

16、号(BCD码)3流水号(BCD码)3系统参考号6日期(终端) (BCD码)3时间(终端) (BCD码)3MAC34 表 10- Transmit_Consume_Note命令的命令报文数据域MAC3由卡中过程密钥对(商户名称+商家号+终端编号+交易类型+卡号长度+卡号内容+交易金额+批次号+流水号+系统参考号+日期(终端) +时间(终端)进行MAC计算生成,计算过程中的初始向量为“00 00 00 00 00 00 00 00”。MAC3的过程密钥计算方法与MAC1的过程密钥一致。见3.1.3.2.4章节,关于MAC1过程密钥计算部分内容。3.1.3.4.4 响应报文数据域响应报文的数据域不存

17、在。3.1.3.4.5 响应报文状态码正常执行返回9000状态字节的含义如下表所示:SW1 SW2意义90 00命令正确执行65 81写EEPROM不成功67 00Lc长度不正确69 01交易不连贯69 82不满足密钥使用条件69 83认证方式被锁定69 88MAC值不正确6A 82文件未找到6A 86P1,P2不正确6A 88未找到密钥文件6E 00不正确的CLA 表 11- Transmit_Consume_Note命令的响应报文状态码3.1.3.5 DISCONNECT(中断连接)功能:DISCONNECT命令用于结束读写器与SEIMMA卡之间的连接。 具体指令格式请参考读写器(POPm

18、ate)上位机通信协议1.7文档中“结束数据传输”章节。3.2 电子钱包交易流程及协议POS机与SEIMMA卡在电子钱包交互过程中,使用下列交易指令,实现电子钱包交易操作。POS机与SEIMMA卡交互时,将使用SEIMMA卡的手机放置于距离读写器 10cm范围内。注意:圈存交易必须在金融终端上联机进行并要求提交个人密码(PIN),现假设POS机作为金融终端机使用。3.2.1 电子钱包圈存交易流程图下图为电子钱包消费交易流程图,POS机通过以下流程,与SEIMMA卡进行电子钱包消费交易。图-3.2.0电子钱包消费交易流程3.2.2 圈存交易步骤说明(1) POS机上支付类别选择:操作员在POS机

19、上将应用类别选为“手机电子钱包圈存”。(2) POS机发送找卡指令:POS机发送CONNECT指令,此时读写器会通过无线通道寻找周围可用于支付的SEIMMA卡,并返回找寻结果。若找卡成功,则进入步骤3,否则,提示“未找到电子钱包”信息,中断操作。(3) POS机发送圈存初始化指令:POS机发送INITIALIZE FOR LOAD命令,SEIMMA卡收到后给出响应。POS机判断响应为“执行正常”信息时,则验证卡片回复的MAC1是否有效。若有效,则进入步骤4;若无效,则发送DISCONNECT命令,终止连接,并提示相关错误信息信息。若响应为错误信息,则发送DISCONNECT命令,终止连接,并提

20、示相关错误信息信息。若没有收到SEIMMA卡响应,则由POS机判断是否满足重发INITIALIZE FOR LOAD命令条件。若满足,则再次发送该命令。若不满足,则发送DISCONNECT命令,终止连接,并提示相关错误信息信息。(4) POS机发送圈存指令:POS机发送CREDIT FOR LOAD命令,SEIMMA卡收到后,判断POS机给出的MAC2值是否正确。若正确,则返回响应报文数据TAC。若错误,则返回相应错误信息。POS机判断响应为“执行正常”信息,则进入步骤5;若响应为错误信息,则发送DISCONNECT命令,终止连接,并提示相关错误信息。若没有收到SEIMMA卡响应,则由POS机

21、判断是否满足发送GET TRANSACTION PROVE命令条件。若满足,进入步骤6。若不满足,则发送DISCONNECT命令,终止连接,并提示相关错误信息。(5) POS机验证TAC:POS机验证TAC值。若正确,则发送DISCONNECT命令,显示圈存交易成功,并保存交易明细。若不正确,则发送DISCONNECT命令,显示圈存交易相关错误信息。(根据PBOC2.0协议,POS机可以不马上验证TAC值)(6) POS机发送防插拔指令:POS机发送GET TRANSACTION PROVE命令,SEIMMA卡收到后给出响应。POS机判断响应为“执行正常”信息,则进入步骤5。响应为错误信息,则

22、发送DISCONNECT命令,终止连接,并提示相关错误信息。若没有收到SEIMMA卡响应,则由POS机判断是否满足再次发送GET TRANSACTION PROVE命令条件。若满足,重复步骤6。若不满足,则发送DISCONNECT命令,终止连接,并提示相关错误信息。3.2.3 圈存交易指令集3.2.3.1 CONNECT(找卡)功能:CONNECT命令用于建立读写器与SEIMMA卡之间的连接。 具体指令格式请参考读写器(POPmate)上位机通信协议1.7文档中“找卡”章节。3.2.3.2 INITIALIZE FOR LOAD3.2.3.2.1 定义和范围: INITIALIZE FOR L

23、OAD命令用于初始化圈存交易。3.2.3.2.2 命令报文代码值CLA 80INS 50P100P2可选值:01 或 02;说明:01 用于ED,02 用于EP。其他值保留。本协议中使用02Lc0BDATA1字节的密钥索引号 + 4字节的交易金额 + 6字节的终端机编号Le0F3.2.3.2.3 响应报文数据:如果此命令执行成功,有如下表数据作为响应报文数据,同时在报文数据后面有命令成功执行的状态码为 “9000”:说明长度(字节)EP余额4EP联机交易序号2密钥版本号DLK1算法标识DLK1伪随机数(SEIMMA卡)4MAC14 3.2.3.2.4 MAC1的计算过程:1. 由INITIAL

24、IZE FOR LOAD指定的密钥对下表数据加密产生8字节过程密钥SK。数据长度(字节)伪随机数4EP联机交易序号280 0022. MAC1由卡中的过程密钥SK对下表数据按MAC的生成方法生成,初始8字节全为0. 数据长度(字节)交易前余额交易金额44交易类型标识1终端机编号6说明:交易类型标识:02H 圈存 06H 消费3.2.3.2.5 响应报文状态码: 其他情况时,此时不存在之前的报文数据,存在响应报文状态码,其情况如下表:SW1 SW2意义90 00命令正确执行65 81写EEPROM不成功67 00Lc长度不正确69 85使用条件不满足6D00INS不支持或错误6A 86 参数P1

25、 P2不正确6A 81不支持此功能(卡片被锁定)6E 00不正确的CLA61xx正确执行,xx表示响应数据长度,可用下文的get response指令取回数据9403密钥索引不支持3.2.3.3 CREDIT FOR LOAD3.2.3.3.1 定义和范围: CREDIT FOR LOAD命令用于圈存交易。3.2.3.3.2 命令报文代码值CLA 80INS 52P100P200Lc0BDATA4字节的交易日期(主机) + 3字节的交易时间(主机) + 4字节的MAC2Le043.2.3.3.3 响应报文数据:如果此命令执行成功,有如下表数据作为响应报文数据,同时在报文数据后面有命令成功执行的

26、状态码为 “9000”:说明长度(字节)TAC43.2.3.3.4 TAC的计算方法: TAC的计算不采用过程密钥方式,它用DTK左右8位字节异或运算的结果对以下数据进行加密运算来产生(按所列顺序)。初始8字节值全为0。数据长度(字节)电子钱包余额(交易后)4电子钱包联机交易序号(加1前)交易金额交易类型标识241终端机编号6交易日期(主机)4交易时间(主机)33.2.3.3.5 MAC2的产生过程: MAC2由卡中的过程密钥SK对下表数据按MAC计算方法生成的,初始8字节值全为0。数据长度(字节)交易金额4交易类型标识1终端机编号6交易日期4交易时间33.2.3.3.6 响应报文状态码: 其

27、他情况时,此时不存在之前的报文数据,存在响应报文状态码,其情况如下表:SW1 SW2意义90 00命令正确执行65 81写EEPROM不成功67 00Lc长度不正确69 85使用条件不满足6D00INS不支持或错误6A 86 参数P1 P2不正确6A 81不支持此功能(卡片被锁定)6E 00不正确的CLA61xx正确执行,xx表示响应数据长度,可用下文的get response指令取回数据9302MAC无效3.2.3.4 GET TRANSACTION PROVE命令3.2.3.4.1 定义和范围GET TRANSACTION PROVE 命令提供了一种在交易处理过程中拔出并重插卡后卡片的恢复

28、机制。在POS终端发给SEIMMA卡一个命令以更新电子钱包余额时,卡片总会回送一个交易验证码TAC,以证明更新已经发生。一旦余额更新成功,可以通过GET TRANSACTION PROVE命令获得TAC.如果在命令已经执行结束,而终端还未收到响应之前,卡片被拔出,终端将处于不知卡片是否被更新的不定状态。在这种情况下,终端可以用GET TRANSACTION PROVE命令取TAC,如果返回9000,表示卡片更新成功,否则表示失败,要完成此次交易,必须从交易初始化重新开始。3.2.3.4.2 命令报文 GET TRANSACTION PROVE命令报文代码值CLA80INS5AP100P2要取的

29、MAC或/和TAC所对应的交易类型标识。(02H 圈存 06H 消费)Lc02Data要取的MAC或/和TAC所对应的EP联机或脱机交易序号。长度2字节Le08 GET TRANSACTION PROVE命令报文3.2.3.4.3 响应报文数据域 如果命令中指定的交易类型标识和EP联机或脱机交易序号对应的MAC或TAC可用,则响应报文数据域见表22:说明长度MAC4TAC4 注意:圈存时,GET TRANSACTION PROVE响应不存在MAC值,该值4字节全部使用默认值00H。3.2.3.4.4 响应报文的状态码 此命令执行成功的状态码是9000。 下表描述了卡片可能回送的错误状态:SW1

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1