mPOS软件设计规格书DOCWord格式.docx
《mPOS软件设计规格书DOCWord格式.docx》由会员分享,可在线阅读,更多相关《mPOS软件设计规格书DOCWord格式.docx(84页珍藏版)》请在冰点文库上搜索。
R
2018
I
2009
S
2019
J
2010
T
2020
第二个字符:
表示的月
1月
7月
2月
8月
3月
9月
4月
10月
5月
11月
6月
12月
第三个字符:
表示的日
1
16
e
31
2
17
3
18
4
19
5
20
6
U
21
7
V
22
8
W
23
9
X
24
10
Y
25
11
Z
26
12
a
27
13
b
28
14
c
29
15
d
30
1.2mPOS软件版本发布信息:
软件版本号
变更人
日期
说明
891EP_ZH_F2_V1.0.0OEF
邱浩
2015.5.6
mPOS产品首个发布版本
2.系统概述
2.1mPOS运行环境
整个mPOS支付系统可由mPOS、上位机、后台支付处理系统等组成。
上位机是指运行支付应用程序的智能终端,如android/ios系统的手机或平板电脑等设备,后台支付处理系统指支付业务机构的交易系统。
用户交易在用户上位机支付应用上发起,将支付输入数据发送至mPOS,mPOS将交易输入数据组成标准的交易报文并用安全的方式和后台支付处理系统交换,将后台支付处理系统返回的交易结果,发送回上位机呈现给用户。
2.2mPOS运行环境
mPOS通过蓝牙与上位机进行通讯,从而实现相关交易。
3.软件功能需求
3.1外设驱动功能要求
3.1.1键盘
mPOS应包括10个数字键、电源键、菜单键、输入法键、“*”、“#”、方向键、上、下键、确认键、取消键、删除键。
可支持字母、数字、中文输入方式。
3.1.2显示屏
文本显示区至少可显示6×
14个汉字;
背光、对比度调节。
显示时无拖尾、短缺。
3.1.3打印机
内置热敏纸记录式打印机。
每行可至少打印24个半角字符。
热敏纸记录式打印不少于10行/秒。
3.1.4通讯
mPOS与上位机采用蓝牙通讯方式。
3.1.5存储器
除应用程序外,需具备足够的存储空间存放应用信息。
3.1.6外设通讯
具有一个RS232串口。
3.2存储要求
3.2.1交易日志
可各存放300条交易日志,每条记录长度最大为140字节,循环记录,先进先出。
3.2.2流水号
可各存放50条信息,每条长度最大为140字节,循环记录,先进先出,用户可删除。
3.2.3打印信息
存放最后一笔交易打印信息(若存在),用户可在帮助菜单中提供查询、删除、重打印(需在打印凭条最后打印“重打印”字样)。
3.2.4冲正信息
终端能正确存储冲正信息,并进行冲正。
3.3mPOS安全要求
3.3.1安全要求概述
3.3.1.1要求1
后台处理系统对受理mPOS合法性的验证通过对称密钥完成。
3.3.1.2要求2
受理mPOS与业务前置进行联机双向认证通过后,方可进行初始化(主密钥下载)、签到(工作密钥下载)和联机交易(消费交易)。
3.3.1.3要求3
联机交易过程中,受理mPOS与后台处理系统间的逻辑通道在支付应用层工作密钥中增加报文加密密钥对全交易报文加密。
3.3.1.4要求4
应用层不改变现有MK/WK二级密钥体系,每次交易的工作密钥通过认证返回的随机数分散后再使用,保证一次一密。
3.3.1.5要求5
初始化认证密钥、mPOS主密钥加密密钥、分散向量保护密钥均为对称密钥(一机一密),由mPOS自动产生并注入业务前置。
3.3.1.6要求6
mPOS带有开盖触发开关,当mPOS受到非法攻击后,安全信息会被立即自动清除,mPOS将无法进行任何操作。
重新上电后,mPOS无法开机运行应用程序。
3.3.2受理mPOS设备初始化
受理mPOS设备初始化实现终端硬件设备激活和注册,并由后台系统下发mPOS主密钥。
初始化流程如下:
1、上位机向受理mPOS发送终端设备连接(初始化)请求。
2、开启联机双向认证过程,认证通过后进入以下联机交易。
3、受理mPOS向上位机返回终端设备连接(初始化)请求,含mPOS信息。
4、上位机向业务前置发起初始化请求。
5、业务前置产生mPOS主密钥TMK,用TEK对TMK和系统信息进行加密,并记录T_Info、TMK的对应关系。
业务前置将TMK和系统信息密文发送上位机。
6、上位机向受理mPOS转发密文。
7、受理mPOS用TEK解密密文,获得系统信息和TMK,进行安全保存,并显示初始化完成。
3.3.3受理mPOS签到
mPOS签到作用与目前POS终端签到作用一致,主要为下发工作密钥、获取系统信息等。
1、上位机向受理mPOS发送终端设备连接(签到)请求。
3、受理mPOS向上位机返回终端设备连接(签到)请求应答,含终端信息。
4、上位机向业务前置发起签到请求。
5、业务前置根据终端信息产生工作密钥WK(包括PIN加密密钥PIK、磁道加密密钥TDK、MAC计算密钥MAK、传输密钥TSK),并用TMK加密WK;
准备系统信息。
6、业务前置向上位机返回签到应答。
7、上位机向受理mPOS转发签到请求应答。
8、受理mPOS获取WK和系统信息,签到完成。
3.3.4受理mPOS交易使用密钥
1、受理mPOS通过屏幕向持卡人显示交易金额、交易类型等信息;
供持卡人确认后,终端提示插卡或刷卡或挥卡,读取卡片信息后用TDK对磁道信息进行加密;
提示持卡人输入PIN,确认后用PIK对PIN进行加密;
随后组装交易报文(含当次交易流水号或等效计数值),用MAK计算MAC。
2、受理mPOS用TSK加密全报文。
3.4mPOS应用要求
3.4.1mPOS维护管理
3.4.1.1菜单键
按“菜单键”,进入常用设置、高级设置、手动断开蓝牙连接,终端信息。
其中常用设置:
应可设置待机等待时间、操作员密码、液晶亮度调节、时钟设置。
高级设置(默认密钥为87654321):
应可设置IC设置、输入超时、自动关机时间、交易更新日期时间、蓝牙连接超时。
3.4.2.2电源键
按下2秒以上,可以进入关机界面,应显示:
“请按【确认】键关机”,按【确认】键后,mPOS关机。
3.4.2.3确认键、删除键、取消键
在选择、输入界面上,按下【确认】键可以实现确认功能;
在输入界面下,按下【删除】键,可以删除已输入的内容;
在选择、输入界面上,按下【取消】键可以实现取消退出功能。
3.4.2.4【△】键、【▽】键
在选择界面上,【△】【▽】键可以实现上下翻页选择。
3.4.3显示
3.4.3.1待机状态
显示格式如下:
“品牌标识(或使用机构LOGO)”
蓝牙名称:
XXXXXXXXXXXXX
XXXX年XX月XX日星期X
HH时MM分SS秒
提示信息显示区域
3.4.3.2交易过程提示
按指定的操作提示信息格式显示提示信息,一行不足显示,自动换行,并可处理换行符0X0a。
对单模板的提示信息,则不等待输入,持续显示的同时直接进行指定操作。
在输入交易金额时,若未指明初始回显信息,则固定初始显示信息为¥0.00。
在输入日期型数据时,固定初始显示信息为当前终端日期,格式为:
YYYY-MM-DD。
3.4.3.3交易结果
显示格式如下:
应答码:
XX(可替换)
应答信息
3.4.3.4密码输入界面
3.4.3.5刷卡、插卡、输入卡号、挥卡界面
(交易类型)
请挥卡
3.4.4输入控制
当输入达到期望最大长度时,终端不再对输入信息作处理。
当无输入,且按下确认键,则终端不作任何处理,继续等待接收输入信息。
在输入金额时,直接顺序输入金额数字,不必输入小数点。
例:
若金额为123
元,则初始显示为¥0.00,输入时顺序输入12300,显示为¥123.00。
3.5mPOS蓝牙通讯接口设计
3.5.1通讯模式
按如下格式进行通讯:
当驱动和设备建立连接后,驱动端的作用类似于一个报文的加解密中转站,驱动与设备之间基本的通信单元为通信帧,驱动与设备之间遵循一发一收机制,如下图所示。
为了保证连接状态被驱动和MPB设备双方感知,每次接收到数据时,均要回应确认帧,如下图所示。
确认帧的超时时间为3秒,如果任一方收不到对方的确认帧,则重复发送数据帧3次。
1.如果设备端重复发送数据帧3次未收到确认帧,则应提示“通信异常,请尝试重新连接”;
2.如果上位机重复发送数据帧3次未收到确认帧,则触发回调,错误信息为“通信异常”(此条与设备无关)。
3.5.2报文格式
通信结构分为通信报文和应用报文:
1.通信报文:
驱动端和设备端之间通信的协议格式;
2.应用报文:
驱动端和应用平台之间通信的协议格式,其为应用平台要发送给设备的具体内容。
3.符号约定
符号
二进制数值(一个字节)
ANS
字母、数字、特殊字符
var
变长
(*)
必选项
0x
十六进制数标志
\x
3.5.1.1通讯模式
通信报文
为了保证报文的完整性和可靠性,其结构如下表所示。
HEAD
PACKETTYPE
PACKETNO
LEN
PACKETDATA
CRC
TAIL
各报文域描述如下表所示。
域英文名称
域中文名称
域长度(字节)
域内容
包开头标志
固定0x02
包类型
数据包:
’D’
确认包:
’A’
表明数据包的类型
包序号
0x0000~0xFFFF
包序号高半字节+包序号低半字节。
包数据长度
包数据长度高半字节+包数据长度低半字节
包数据
变长最大2048
二进制数据
PACKETDATA采用固定通信密钥加密,3DES算法,通信密钥方案见4.8
包数据CRC校验
从“PACKETNO”开始到“PACKETDATA”结束的字段,做半字余式CRC16校验,分为高半字节和低半字节
包结尾标志
固定0x03
帧序号的控制:
双方维护各自的帧序号,确认帧和数据帧中的帧序号一致,当发出数据帧之后收到确认帧+1。
3.5.1.2应用报文
格式如下所示。
应用报文APDU请求:
CLA
INS
P1
P2
Lc
DATA
MAC
Le
应用报文APDU应答:
SW1
SW2
注:
应答报文返回请求报文中的P1和P2参数。
指令类
见2.3指令说明
指令值
数据控制参数1
这个字段控制数据域的安全特性。
按位定义(BIT[7]为最高位):
BIT[7]:
请求报文加密标志
0:
不加密
1:
加密(密钥使用磁道工作密钥)
BIT[6]:
请求报文MAC标志
无需MAC
需要MAC(使用Mac工作密钥)
BIT[5]:
应答报文加密标志
BIT[4]:
应答报文MAC标志
BIT[3:
2]:
报文加密算法
3DESEBC算法(参照附录)
3DESCBC算法(参照附录)
2:
保留
3:
BIT[1:
0]:
报文MAC算法
X9.19算法(参照附录)
CBC算法(参照附录)
ECb算法
数据控制参数2
保留,暂固定为0
DATA域的长度
最大为2048
交易数据域
DATA数据根据P1参数中的【报文加密标志】进行报文加密
DATA域的MAC
根据P1参数中的【MAC标志】要求,计算DATA域的明文MAC,如果无需MAC,则置空
预期数据长度
0~0xff
0表示预期数据为超过255个字节,暂固定为0
APUD返回状态码1
参照章节3.2具体指令的定义
APUD返回状态码2
3.5.1.2指令说明
cla
指令类别
指令
ins
查找设备
停止查找
打开设备
中断打开设备
断开设备
判断设备是否连接
0XFF
MPB相关
读取设备信息(只发标签)
硬件序列号(32字节)
0x01
蓝牙名称(最大长度16字节)
Mac地址(18字节)
激活状态(1个字节)
版本号(8个字节)
是否支持非接(1个字节)
是否支持打印(1个字节)
AID版本(4个字节)
公钥版本(4个字节)
获取DOL版本(4个字节)
是否支持磁条卡(1个字节)
是否支持电子签名(1个字节)
是否支持接触式(1个字节)
厂商名称(1个字节)
产品型号(2个字节:
两个数字)
密钥更新
导入主密钥
0x02
导入工作密钥(根据TLV区分)
Pin密钥
0x03
Mac密钥
磁道密钥
设备信息更新
更新启动请求
0x04
分帧传输
0x05
交易
读取卡号明文
0x06
读取pin密码密文
0x07
读取磁道密文
0x08
显示信息
0x09
平台取消交易(与用户交互的交易)
0x0A
行业卡透传交易(满足目前电卡)
0x0B
行业卡上电
0x0C
行业卡下电
0x0D
增加一条AID
0x0E
清空所有AID
0x0F
更新AID版本
0x10
增加一条公钥
0x11
清空所有公钥
0x12
更新公钥版本
0x13
读取跨行交易步骤1
0x14
读取跨行交易步骤2
0x15
联机数据处理(向IC卡写入银联返回数据)
0x16
打印
0x17
配置IC卡交易DOL(包括标签和版本)
0x18
开启PBOC交易
0x19
开启跨行交易
0x1A
3.5.1.3错误码
Data
意义
8E
00
未知错误:
未定义的错误
01
指令格式出错
02
当前电量低,无法交易
03
CLA错误
04
INS错误
05
P1错误
06
P2错误
07
LC长度错误(根据帧长度计算lc和该lc不符)
08
Data域内容有误
09
Mac校验结果不一致
0A
Le错误
获取设备信息相关
0B
获取设备信息失败
导入主秘钥相关
0C
主密钥KCV校验失败
0D
导入主密钥失败
导入工作密钥相关
0E
Pin密钥KCV校验失败
0F
导入pin密钥失败
Mac密钥KCV校验失败
导入mac密钥失败
磁道密钥KCV校验失败
导入磁道密钥失败
更新启动请求相关
更新文件类型参数错误
文件大小超限(如固件程序)
启动更新失败
更新分帧传输相关
不支持的分帧大小(终端所支持单帧大小超限)
偏移量错误
包类型标志错误
1A
包数据错误(L错误)
1B
文件CRC校验失败
3C
分帧传输失败
1C
读取卡号明文失败
读取pin密码相关
1D
获取pin密文失败
1E
获取pin密文参数错误(卡号)
显示信息相关
1F
显示内容超限
读取磁道密文相关
读取磁道密文失败
行业卡相关
行业卡透传指令失败
行业卡上电失败
AID相关
增加AID失败
清空AID失败
更新AID版本失败
公钥相关
增加公钥失败
清空公钥失败
更新公钥版本失败
DOL相关
配置IC卡交易DOL失败
跨行交易相关
2A
执行跨行交易步骤1失败
2B
执行跨行交易步骤2:
交易卡类型参数错误
2C
交易日期时间参数错误
2D
交易金额参数错误
2E
卡号明文参数错误
2F
执行跨行交易步骤2执行失败
联机交易处理相关
联机数据处理:
交易应答码参数错误
IC卡交易数据参数错误
32
联机数据处理失败
打印相关
33
不支持打印
34
打印机缺纸
35
当前电量不足,无法打印
36
打印失败
通用
37
用户操作超时
38
用户取消操作
39
Mac密钥不存在
3A
Pin密钥不存在
3B
磁道密钥不存在
3.5.2通讯报文中的数据项TLV定义
格式:
Tag(1字节)+length(2字节)+value,如下表格定义
Tag
key
定义
属性
类型
取值
CurrentTime
时间
N14
ASC
年月日时分秒
CommandCode
指令码
N1
1:
发起交易
2:
交易过程
3:
通信服务
4:
认证交互
Respone
返回码
交易成功
交易失败
操作提示
Transaton
Type
交易类型
0:
初始化
签到
消费
撤消(暂不实现)
5:
撤消冲正(暂不实现)
6:
消费冲正
7:
参数下载
8:
结算(暂不实现)
progressCode
交易状态
等待用户确认
等待用户刷卡
等待用户输入密码
请重新输入密码
联网过程
errorCode
错误码
未与设备连接
交易发起失败
交易结果失败
网络通信收发数据失败
Package
8583包
VAR
512
HEX
Amount
交易金额
VAR13
1234567890.12
transDate
交易日期
N8
20140302
transTime
交易时间
N6
154515
cardNo
卡号
VAR19
622622******1234
batchNo
批次号
123456
refNo
交易参考号
N12