基于SSM和Spring Boot框架技术的
手机POS前置平台应用
王 斌
(上海御付信息科技有限公司,上海 200127)
摘 要:随着移动互联网和智能手机技术的高速发展,商户对金融支付设备的互联网化、移动化、智能化提出了更高的要求。为满足客户的需求,手机POS产品应运而生。笔者负责开发设计了手机POS前置平台应用系统。基于此,介绍了该平台的总体需求、业务流程及功能特点,重点描述了以分布式为核心的Spring Boot框架技术实现方案,并详细阐述了系统主要功能实现和相关功能设计。
关键词:手机POS;前置平台;SSM架构;Spring Boot框架
中图分类号:TP311 文献标识码:A 文章编号:1003-9767(2019)10-086-06
Application of Mobile Phone POS Pre-platform for Based on SSM and Spring
Boot Framework Technology
Wang Bin
(Shanghai Yufu Information Technology Co., Ltd., Shanghai 200127, China)
Abstract: With the rapID development of mobile Internet and smart phone technology, merchants put forward higher requirements for the internet, mobile and intelligent financial payment equipment. In order to meet the needs of customers, mobile POS products emerge as the times require. The author is responsible for the development and design of mobile POS front-end platform application system. Based on this, the overall requirements, business processes and functional characteristics of the platform are introduced. The implementation scheme of Spring Boot framework technology with distributed core is described in detail, and the main function realization and related functional design of the system are elaborated.
Key words: mobile phone POS; pre-platform; SSM framework; Spring Boot framework
0 引言
近年来,随着移动互联网的高速发展,金融服务向互联网化、移动化、智能化方向发展已是大势所趋,金融机构纷纷通过布局智能POS进行变革与创新。智能POS应用推广过程中,以智能手机为上位
机的MPOS,在便携性、移动性、成本等方面具有优势,逐渐得到了市场的肯定和接受。不管是智能POS还是MPOS,都需要专有机具保证收单过程中对持卡人PIN码、POS应用与卡片之间交互数据的安全保护,只使用手机本身具备的软硬件无法进行POS收单。主要原因在于传统智能手机的软硬件安全性不足,各种漏洞、病毒等非法程序难以避免,无法保证收单过程中POS应用与银行卡之间的数据交互安全,存在持卡人支付PIN输入过程中被键盘录制等问题。不安全性是传统智能手机无法成为POS机具的根本问题。随着银联手机闪付和指纹技术的发展,新的智能手机逐渐普及了TEE和ESE平台,相比传统智能手机,在软硬件安全方面有了质的提升,可有效在软硬件双重界面上保障手机上应用软件的安全运行,保证数据安全存储和用户数据输入、输出的安全,为在智能手机上使用POS收单应用奠定了基础。
1 需求分析
手机POS产品是手机上的一套底层服务,可以采用开放API的方式被第三方APP调用,用户只需在自己的智能手机上运行,支持银联手机POS API的第三方APP(或通过手机厂商的手机钱包APP),通过在线身份认证等方式完成小微商户注册开通,即可使手机变身为一部具备银联IC卡闪付、银联手机闪付、二维码主被扫等多功能的收单设备。为了满足手机POS的产品需求,需要构建相应的手机POS前置平台系统,该系统主要满足以下需求。
作者简介:王斌(1975—),男,湖南长沙人,本科。研究方向:金融支付系统。
第一,手机POS 业务安全需求。手机POS 除了从以上技术层面提供保护安全外,还要根据人民银行业务和技术的要求,通过对应的业务规则和创新风控手段,实现手机POS 业务的全面保障。第二,手机POS 的功能需求。当前手机POS 主要功能分为商户管理和收单交易两大部分。其中,商户管理主要提供商户在线开通、商户信息管理以及设备管理,收单交易包括银联IC 卡闪付、银联手机闪付以及银联二维码主扫被扫交易等。
2 手机POS前置平台的系统构成
手机POS 前置平台系统构成如图1
所示。
图1 手机POS 前置平台系统构成
手机POS 前置平台由3个子系统构成。第一,管理系统,提供整个POS 前置平台相关业务参数的管理和配置功能。本系统包含Web 页面展示,满足了整个平台的UI 需求。第二,交易系统。外部系统及手机控件通过调用本系统的交易接口,完成银行卡付款交易。本系统支持多种交易类型。第三,接口系统。外部系统及手机控件与POS 前置平台的非交易类,通过接口系统进行交互,比如密钥处理、商户进件等接口。
2.1 管理系统2.1.1 系统基础架构
管理系统架构如图2所示。
第一,前端UI 。前端UI 完全基于自行独立封装的前端无刷新技术实现。独立封装简化操作控件,可编辑表格、缓存下拉菜单数据、缓存标签页等。制定最优化页面排版方案,采用以少层级、无冗余、低损耗为标准的页面渲染技术。第二,后台框架。主要技术为Java SSM (SpringMVC+Spring+Mybatis ),有公司独立封装的菜单权限系统,并缓存设计Redis ,优化系统性能。设计前端一体化的数据交互方案,如分页、Ajax 数据交互等,分层明确,代码结构规范,易于维护,灵活性、扩展性较强。基
于Java5的类泛型技术,封装了业务逻辑层代码,简洁高效。第三,数据持久化。基于MyBatis 的持久化层封装,SQL 代码规范、灵活、易维护,使用的数据库为MySQL ,是当前Web 应用主流数据库之一。
2.1.2 Web 服务、应用系统和数据库之间的关系
Web 服务、应用系统和数据库之间互相独立运行,并部署在不同的网络区域,根据安全需求实现逻辑上的隔离。2.1.3 应用系统采用关键技术的成熟度
应用的主要技术框架为Java SSM (SpringMVC+Spring+ Mybatis ),为目前Java 主流应用技术,并广泛采用于IT 金融Web 应用领域被,技术成熟度极高。本应用设计时兼顾了系统技术成熟度要求,尽可能利用技术提高便捷性、灵活性、
可扩展性。
图2 管理系统架构
2.1.4 应用系统主要性能及技术指标
手机POS 前置平台管理系统采用成熟的技术方案,经过多年完善改进,核心处理部分的性能及安全性已通过多个支
付项目平台的实际检验。C 端页面采用无刷新浏览技术,页面访问远大于2000 tps ,后端服务请求时间平均不超过1 s ,完善的数据分页功能,减小了对系统的压力。
2.1.5 管理系统功能
管理系统功能结构如图3
所示。
图3 管理系统功能结构
第一,系统管理:(1)缓存更新,修改系统配置后,需更新Redis 系统缓存,才能生效,进而解锁用户;(2)菜单配置,新增、修改系统各个模块的菜单信息;(3)角管理,新增系统角,为角配置相应权限;(4)用户管理,增加、修改机构的登录人员,为人员分配相应的角;(5)系统参数,新增、修改系统使用的各个参数,变更后需要更新系统缓存;(6)权限配置,为各个级别的代理商户配置默认的基础菜单权限;(7)秘钥管理,供机构配置自己接口接入的密钥信息;(8)操作日志,查询系统人员的操作日志记录。
第二,通道管理:(1)业务类型配置,供系统管理员新增、修改及查询系统配置的业务类型;(2)通道配置,供系统管理员新增、修改及查询系统配置的通道信息;(3)阶梯费率类型配置,供系统管理员新增、修改及查询系统配置的阶梯费率类型;(4)业务通道配置。供系统管理员配置业务和渠道的对应关系。
第三,机构管理:(1)收单机构管理,供新增、修改及查看收单机构机构信息;(2)服务商管理,供新增、修改及查看服务商机构信息;(3)收单机构/服务商审核,供平台审核收单机构/服务商;(4)机构业务配置,供机构为下级机构分配业务权限,配置业务成本;(5)机构密钥,供机构配置接口对接的RSA 密钥对。
第四,商户管理:(1)商户信息,供机构查看商户信息;(2)商户限额,供机构维护商户日/月交易额度;(3)线上刷卡交易证书配置,供机构维护商户的线上刷卡交易证书。
第五,交易管理:交易查询,供查询实时交易信息。第六,黑名单管理:黑名单配置,新增、修改及查询配
置的黑名单身份证。
第七,白名单管理:白名单配置,新增、修改及查询配置的白名单身份证。
第八,应用入网:(1)APP 入网,供收单机构配置可用的APP ;(2)APP 入网审核,平台审核收单机构入网的APP 。
第九,个人中心:(1)个人首页,供用户查看自己的机构信息、开通的业务权限和成本信息;(2)修改密码,供登录系统人员修改密码;(3)待办任务,供机构查询需要处理的任务。2.2 交易系统2.2.1 系统架构
交易系统整体使用Spring Boot 框架技术和成熟的Mybatis 技术,实现持久层应用。Spring Boot 框架技术结合“习惯优于配置”的理,念促使项目快速运行。使用Spring Boot 易创建一个独立运行、准生产级别的基于Spring 框架的项目,同时,可以不用或者只需要很少的Spring 配置,且在分布式
处理方面具有先天优势。另外,采用Redis 制定缓存方案,提高系统性能,增加并发效率。日志记录使用Logback ,设计了交易流程记录方案,以保证交易的可追溯核查和清晰记录。
2.2.2 系统功能介绍
第一,二维码相关功能:(1)收款码生成,通过调用接口生成二维码URL ,进而生成二维码图片供用户扫码支付;(2)二维码消费,持卡人被商户用扫码扫码完成支付,银联收到消费请求后立刻返回同步应答,继续处理消费交易,消费交易处理完毕后,将交易结果返回至商户系统;(3)二维码退款,二维码消费的退货可以在交易30天内使用退货接口退货;(4)二维码撤销,当天的二维码交易可以使用二维码撤销接口撤销交易,金额必须和消费金额一致;(5)二维码交易状态查询,消费、退货、撤销等交易的查询,交易状态未知的交易请求方必须发起交易状态查询。
第二,非接交易相关功能:(1)非接消费,使用刷卡方式消费;(2)非接退款,消费退货可以在交易发生30天内使用退货接口退货;(3)非接撤销,当天的二维码交易可以使用二维码撤销接口撤销交易,金额必须和消费金额一致;(4)非接交易状态查询,消费、退货、撤销等交易查询,交易状态未知的交易请求方必须发起交易状态查询。
第三,线上刷卡支付功能,用于消费者在线购买商品时,使用手机进行线上刷卡支付,如图4所示。(1)申请订单,发出生成订单请求,返回系统交易流水号;(2)订单查询,通过申请的交易流水号,
查询订单和商户相关信息;(3)线上支付,通过传入申请的交易流水号,提交支付请求。
第四,交易查询及通知功能:(1)交易统计查询,统计单个商户可选时间段内的多种交易类型的交易金额和笔数汇总(银行卡消费、银行卡消费退款、银行卡消费撤销、二维码消费、二维码消费退款和二维码消费撤销);(2)交易流水查询,统计某个商户可选时间段内的正常交易订单信息、异常交易订单信息或者所有的交易信息(分页显示;(3)异步通知,消费、撤销、退款交易在业务处理完成后,会将结果发送至商户系统。
2.3 接口系统
2.3.1 系统技术架构
技术架构组成包括Spring Boot+SpringMUC+Spring+My Baits+Redis+MySQL+Logback。
2.3.2 系统功能
第一,设备管理类。
(1)手机POS生产参数申请。每个收单APP调用银联TEE控件中的POS模块初始化时,前置将为每个收单APP 生成专属POS生产参数,手机POS控件中需要将该生产参数与收单APP绑定。每个收单A
PP需下载一次POS生产参数,生产参数包含主密钥、终端唯一序列号及序列号密钥。其中,主密钥由前置判断是否过期,以重新下发主密钥。手机POS控件需要与设备密钥模块建立安全通道,安全通道建立后,手机控件需通过安全通道加密设备ID,请求POS 前置生产参数下载。POS前置收到设备ID密文,需要通过安全通道解密设备ID,比对设备ID,如设备ID无误,则生成生产参数,生产参数包含主密钥信息。生产参数需通过安全通道加密主密钥和其他生产参数,保存后下发。每个收单APP的生产参数不同,手机POS控件获取到该生产参数后与收单APP绑定。手机POS生产参数下载流程如图5 所示。
(2)POS工作参数下载。收单APP每次连接时产生的手机POS工作参数需下发给手机POS,用于后续收单APP 与前置的交易过程。每个收单APP的POS工作参数不同,同个收单APP当日POS工作参数单日内可以相同,跨日后,POS工作参数必须重新产生。这一过程中,POS模块与POS 前置发生主密钥失败或者解密不一致等异常情况,需重新触发手机POS生产参数过程。上送报文和下发报文的内容由主密钥加密。POS工作参数下载流程如图6所示。
(3)短信验证码请求。该功能主要用于主设备绑定和添加店员。主设备绑定指(店主更换手机)店主更新手机后,手机需要走POS生产参数申请与工作参数下载过程,省略商户开通流程,直接走主设备绑定流程。子设备绑定指(店员开通手机)店主手机完成店员添加流程,店员个人手机也完成POS生产参数申请和工作参数下载,完成子设备绑定。前置进行子设备绑定时,需判断该店员用户和手机号
是否已通过店员添加流程。
springboot框架的作用(4)设备注销。当手机设备需要注销时,使用此功能可完成设备注销。
第二,商户管理类。商户管理方面主要包括以下功能:(1)根据userID获取商户状态;(2)该验证码只用于新商户开通;(3)录入新商户;(4)录入存量商户;(5)实名认证;(6)为商户提高额度;(7)为商户上传相关图片资料;(8)更新商户信息;(9)查询商户剩余额度;(10)商户信息查询;(11)商户信息补充;(12)查询商户所有店员;(13)为商户添加店员,交易由店主发起,店主手机上输入短信验证码(店员手机号接收);(14)交易由店主发起,只能在店主手机上完成。
第三,后台商户开通功能。(1)流程:注册或绑定小微商户的入账卡号进行实名认证。为了控制风险,实名认证时需要商户通过短信验证码确定。该交易为可选交易,
如果机构可以控制风险且愿意承担相应风险,可以申请关闭短图4 线上刷卡支付
图5 手机POS生产参数下载流程
图6 POS工作参数下载流程
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论