mPOS软件设计规格书DOC.docx
- 文档编号:16652135
- 上传时间:2023-04-23
- 格式:DOCX
- 页数:84
- 大小:133.64KB
mPOS软件设计规格书DOC.docx
《mPOS软件设计规格书DOC.docx》由会员分享,可在线阅读,更多相关《mPOS软件设计规格书DOC.docx(84页珍藏版)》请在冰豆网上搜索。
mPOS软件设计规格书DOC
mPOS_软件设计规格书
文档版本1.0
发布时间2015年2月15日
编写人邱浩
江苏东大集成电路工程技术有限公司
2015年2月
1.目的
制定该文档的目的在于提供一个确定的mPOS的软件设计需求目标,并对所实现的mPOS软件功能做全面的规格描述。
该文档构成软件开发的技术基础,同时也作为终端设计和实现的目标及测试、验收依据。
1.1软件版本命名格式:
设计要求:
按照如下格式:
终端系列号_区域标识_处理器标识_版本号及日期
软件版本名称由“终端系列号”、“区域标识”、“处理器标识”、“版本号及日期”四个字段组成,每个字段用字符‘_’分隔:
1.1.1终端系列号
最长为5个字符,这组字符是说明软件所适用的硬件平台或者硬件模块。
1.1.2区域标识
最长为2个字符,一般为名称缩写首字母。
以终端的使用机构的分支机构为依据划分
1.1.3处理器标识
最长为2个字符。
一般为名称缩写首字母。
以固件所适用的处理器为依据划分
1.1.4版本号及日期
规定为8个字符。
固件版本号由主版本号、子版本号、阶段版本号组成。
一般首字符用V表示,主版本号、子版本号与阶段版本号之间用“.”分隔。
主版本号为一个字符,用于表示主要功能的变更或重大修改;子版本号为一个字符,用于表示功能有一定的增加或变化;阶段版本号用于表示进行了局部修改或bug修正。
如版本号定义:
V1.0.0。
版本号后紧跟的3个字符表示版本生成的日期,具体内容如下:
第一个字符:
英文字符
表示的年份
英文字符
表示的年份
A
2001
K
2011
B
2002
L
2012
C
2003
M
2013
D
2004
N
2014
E
2005
O
2015
F
2006
P
2016
G
2007
Q
2017
H
2008
R
2018
I
2009
S
2019
J
2010
T
2020
第二个字符:
英文字符
表示的月
英文字符
表示的月
A
1月
G
7月
B
2月
H
8月
C
3月
I
9月
D
4月
J
10月
E
5月
K
11月
F
6月
L
12月
第三个字符:
英文字符
表示的日
英文字符
表示的日
英文字符
表示的日
A
1
P
16
e
31
B
2
Q
17
C
3
R
18
D
4
S
19
E
5
T
20
F
6
U
21
G
7
V
22
H
8
W
23
I
9
X
24
J
10
Y
25
K
11
Z
26
L
12
a
27
M
13
b
28
N
14
c
29
O
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发送终端设备连接(签到)请求。
2、开启联机双向认证过程,认证通过后进入以下联机交易。
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.符号约定
符号
说明
b
二进制数值(一个字节)
ANS
字母、数字、特殊字符
var
变长
(*)
必选项
0x
十六进制数标志
\x
十六进制数标志
3.5.1.1通讯模式
通信报文
为了保证报文的完整性和可靠性,其结构如下表所示。
HEAD
PACKETTYPE
PACKETNO
LEN
PACKETDATA
CRC
TAIL
各报文域描述如下表所示。
域英文名称
域中文名称
域长度(字节)
域内容
说明
HEAD
包开头标志
1
固定0x02
PACKETTYPE
包类型
1
数据包:
’D’
确认包:
’A’
表明数据包的类型
PACKETNO
包序号
2
0x0000~0xFFFF
包序号高半字节+包序号低半字节。
LEN
包数据长度
2
0x0000~0xFFFF
包数据长度高半字节+包数据长度低半字节
PACKETDATA
包数据
变长最大2048
二进制数据
PACKETDATA采用固定通信密钥加密,3DES算法,通信密钥方案见4.8
CRC
包数据CRC校验
2
二进制数据
从“PACKETNO”开始到“PACKETDATA”结束的字段,做半字余式CRC16校验,分为高半字节和低半字节
TAIL
包结尾标志
1
固定0x03
帧序号的控制:
双方维护各自的帧序号,确认帧和数据帧中的帧序号一致,当发出数据帧之后收到确认帧+1。
3.5.1.2应用报文
格式如下所示。
应用报文APDU请求:
CLA
INS
P1
P2
Lc
DATA
MAC
Le
应用报文APDU应答:
DATA
MAC
P1
P2
SW1
SW2
注:
应答报文返回请求报文中的P1和P2参数。
各报文域描述如下表所示。
域英文名称
域中文名称
域长度(字节)
域内容
说明
CLA
指令类
1
二进制数据
见2.3指令说明
INS
指令值
1
二进制数据
见2.3指令说明
P1
数据控制参数1
1
二进制数据
这个字段控制数据域的安全特性。
按位定义(BIT[7]为最高位):
BIT[7]:
请求报文加密标志
0:
不加密
1:
加密(密钥使用磁道工作密钥)
BIT[6]:
请求报文MAC标志
0:
无需MAC
1:
需要MAC(使用Mac工作密钥)
BIT[5]:
应答报文加密标志
0:
不加密
1:
加密(密钥使用磁道工作密钥)
BIT[4]:
应答报文MAC标志
0:
无需MAC
1:
需要MAC(使用Mac工作密钥)
BIT[3:
2]:
报文加密算法
0:
3DESEBC算法(参照附录)
1:
3DESCBC算法(参照附录)
2:
保留
3:
保留
BIT[1:
0]:
报文MAC算法
0:
X9.19算法(参照附录)
1:
CBC算法(参照附录)
2:
ECb算法
3:
保留
P2
数据控制参数2
1
二进制数据
保留,暂固定为0
Lc
DATA域的长度
2
最大为2048
包数据长度高半字节+包数据长度低半字节
DATA
交易数据域
1
二进制数据
DATA数据根据P1参数中的【报文加密标志】进行报文加密
MAC
DATA域的MAC
8
二进制数据
根据P1参数中的【MAC标志】要求,计算DATA域的明文MAC,如果无需MAC,则置空
Le
预期数据长度
1
0~0xff
0表示预期数据为超过255个字节,暂固定为0
SW1
APUD返回状态码1
1
二进制数据
参照章节3.2具体指令的定义
SW2
APUD返回状态码2
1
二进制数据
参照章节3.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
SW1
SW2
意义
8E
00
未知错误:
未定义的错误
8E
01
指令格式出错
8E
02
当前电量低,无法交易
8E
03
CLA错误
8E
04
INS错误
8E
05
P1错误
8E
06
P2错误
8E
07
LC长度错误(根据帧长度计算lc和该lc不符)
8E
08
Data域内容有误
8E
09
Mac校验结果不一致
8E
0A
Le错误
获取设备信息相关
8E
0B
获取设备信息失败
导入主秘钥相关
8E
0C
主密钥KCV校验失败
8E
0D
导入主密钥失败
导入工作密钥相关
8E
0E
Pin密钥KCV校验失败
8E
0F
导入pin密钥失败
8E
10
Mac密钥KCV校验失败
8E
11
导入mac密钥失败
8E
12
磁道密钥KCV校验失败
8E
13
导入磁道密钥失败
更新启动请求相关
8E
14
更新文件类型参数错误
8E
15
文件大小超限(如固件程序)
8E
16
启动更新失败
更新分帧传输相关
8E
17
不支持的分帧大小(终端所支持单帧大小超限)
8E
18
偏移量错误
8E
19
包类型标志错误
8E
1A
包数据错误(L错误)
8E
1B
文件CRC校验失败
8E
3C
分帧传输失败
读取卡号明文
8E
1C
读取卡号明文失败
读取pin密码相关
8E
1D
获取pin密文失败
8E
1E
获取pin密文参数错误(卡号)
显示信息相关
8E
1F
显示内容超限
读取磁道密文相关
8E
20
读取磁道密文失败
行业卡相关
8E
21
行业卡透传指令失败
8E
22
行业卡上电失败
AID相关
8E
23
增加AID失败
8E
24
清空AID失败
8E
25
更新AID版本失败
公钥相关
8E
26
增加公钥失败
8E
27
清空公钥失败
8E
28
更新公钥版本失败
DOL相关
8E
29
配置IC卡交易DOL失败
跨行交易相关
8E
2A
执行跨行交易步骤1失败
8E
2B
执行跨行交易步骤2:
交易卡类型参数错误
8E
2C
执行跨行交易步骤2:
交易日期时间参数错误
8E
2D
执行跨行交易步骤2:
交易金额参数错误
8E
2E
执行跨行交易步骤2:
卡号明文参数错误
8E
2F
执行跨行交易步骤2执行失败
联机交易处理相关
8E
30
联机数据处理:
交易应答码参数错误
8E
31
联机数据处理:
IC卡交易数据参数错误
8E
32
联机数据处理失败
打印相关
8E
33
不支持打印
8E
34
打印机缺纸
8E
35
当前电量不足,无法打印
8E
36
打印失败
通用
8E
37
用户操作超时
8E
38
用户取消操作
8E
39
Mac密钥不存在
8E
3A
Pin密钥不存在
8E
3B
磁道密钥不存在
3.5.2通讯报文中的数据项TLV定义
设计要求:
格式:
Tag(1字节)+length(2字节)+value,如下表格定义
Tag
key
定义
属性
类型
取值
0x01
CurrentTime
时间
N14
ASC
年月日时分秒
0x02
CommandCode
指令码
N1
ASC
1:
发起交易
2:
交易过程
3:
通信服务
4:
认证交互
0x03
Respone
返回码
N1
ASC
1:
交易成功
2:
交易失败
3:
操作提示
0x04
Transaton
Type
交易类型
N1
ASC
0:
初始化
1:
签到
3:
消费
4:
撤消(暂不实现)
5:
撤消冲正(暂不实现)
6:
消费冲正
7:
参数下载
8:
结算(暂不实现)
0x05
progressCode
交易状态
N1
ASC
1:
等待用户确认
2:
等待用户刷卡
3:
等待用户输入密码
4:
请重新输入密码
5:
联网过程
0x06
errorCode
错误码
N1
ASC
1:
未与设备连接
2:
交易发起失败
3:
交易结果失败
4:
网络通信收发数据失败
0x07
Package
8583包
VAR
512
HEX
0x08
Amount
交易金额
VAR13
ASC
1234567890.12
0x09
transDate
交易日期
N8
ASC
20140302
0x0A
transTime
交易时间
N6
ASC
154515
0x0B
cardNo
卡号
VAR19
ASC
622622******1234
0x0C
batchNo
批次号
N6
ASC
123456
0x0D
refNo
交易参考号
N12
ASC
123456
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mPOS 软件设计 规格书 DOC