APP下载

铁路电子钱包系统设计

2020-06-02李燕波郝雅清甘人才

铁路计算机应用 2020年5期
关键词:开户校验银行卡

李燕波,郝雅清,甘人才

(中国铁道科学研究院集团有限公司 电子计算技术研究所,北京100081)

随着人们支付需求的变化及智能移动终端的快速普及,第三方支付行业迎来了爆发性增长态势[1-3],电子钱包正成为当下流行的移动支付产品。

目前,电子钱包在我国已有许多成熟案例[4],如当下流行的支付宝和微信,这两个产品几乎颠覆了国人的交易方式,是大众平时使用最多的支付类钱包产品。

在各行各业也都产生了行业专属的电子钱包,如国家电网钱包、南航钱包等,都得到了使用者的喜欢和支持,这也加速了钱包类产品的推广。

作为对社会有着巨大影响力的行业,铁路目前还没有自己的钱包类移动支付产品。鉴于此,铁路电子支付平台进行了支付升级,对铁路行业场景下的电子钱包进行了研究和设计。

1 铁路电子钱包功能设计

目前,铁路电子钱包按业务划分,其后台应用主要提供账户管理接口服务和交易接口服务。

两个接口和第三方系统的所有交互采用Https协议进行,接口访问方式符合RestfulAPI 规范,且交互信息都经过证书的加解密及签名验签过程,以防止信息泄露及篡改。

1.1 账户管理功能

1.1.1 铁路电子钱包开户

(1)首次使用铁路钱包时,旅客需要在开户银行进行身份信息校验。旅客在身份校验界面上传身份证图片并输入相关信息后提交,远程钱包账户管理接口对收到的信息进行解密及验签操作后,按照和银行约定的报文格式封装身份校验信息,以符合Restful API 规范的方式通过Https协议发送银行处理。

银行同步返回身份校验结果,校验失败后钱包账户接口转接前台应用失败页面,校验成功则转入下一步开户操作。

(2)身份校验成功后,则需进行绑定银行卡操作。旅客在下一步页面输入要绑定的银行卡、手机号等信息后提交,钱包账户接口服务对收到的请求信息进行校验保存,并加密签名后按照约定报文格式通过Https协议发送给银行进行开户操作,铁路电子钱包开户流程,如图1所示。

图1 铁路电子钱包开户流程

为将来能推出如积分、红包等个人权益类产品[5-7],钱包利用旅客开户时提交的信息,在内部为旅客建立了自己的账户管理体系,以便对旅客进行管理。

(3)由于开户操作在银行端比较复杂,通常耗时较长。为避免旅客等待,钱包和银行采用异步及同步相结合的方式进行2次交互响应,定时对未有开户结果的请求进行批量轮询。

收到开户命令后,银行仅校验报文格式的正确性并进行基本的业务逻辑判断,校验无误后则同步返回“开户中”响应信息。

(4)当在某个时间点,银行开户有结果后,将触发对铁路电子钱包的异步响应。此时银行把开户结果按照约定报文格式加密签名后,主动推送到钱包账户接口服务,钱包将依据开户结果来更新自己的账户状态。

(5)针对超过一定期限且银行也未异步推送处理结果的开户请求,钱包账户接口将按照一定的配置规则,定时把此类开户请求批量发送银行轮询处理,并依据轮询结果同步更新钱包内部账户状态,以防止旅客开户结果有遗漏。

1.1.2 铁路电子钱包绑定其它银行卡

(1)旅客可再绑定其它银行卡,通过在页面输入银行卡号、手机号和支付密码等信息并提交。

(2)钱包账户管理接口将对收到的绑定其它银行卡请求进行处理,并按要求封装报文后提交到银行,银行同步返回绑卡结果。

(3)当绑定其它银行卡成功后,钱包账户接口将同步更新内部账户体系,保存旅客所绑定其它银行卡的详细信息。

1.1.3 铁路电子钱包充值

开户成功后,旅客将在开户行拥有一个专用于铁路电子钱包交易的二类户,此时旅客可通过绑定银行卡对该二类户进行充值操作。

(1)旅客在充值页面选择一个已绑定银行卡,并输入金额、支付密码后提交到钱包账户接口。钱包账户接口对收到的信息处理后将封装报文并发送银行,银行处理后同步返回充值结果,铁路电子钱包充值流程,如图2 所示。

图2 铁路电子钱包充值流程

(2)为提高钱包余额查询速度及金额校验效率,钱包账户接口在收到银行充值响应后,会同步更新钱包的内部旅客账户数据,保留旅客钱包对应二类户的余额、冻结款等金额信息[8]。

1.1.4 铁路电子钱包提现

(1)旅客可在提现操作页面从已绑银行卡中选择要提现的银行卡,输入金额及支付密码,提交到钱包账户服务接口。

(2)钱包账户接口对提现请求校验无误,将按照和银行约定格式封装报文并发送银行处理,其处理方式和充值流程相似。

同样,在钱包账户接口收到银行提现响应报文,会同步更新旅客钱包账户金额类数据。

1.2 交易功能

1.2.1 铁路电子钱包支付

旅客在中国铁路12306互联网售票系统(简称:12306)支付时提交支付请求到铁路电子支付平台,支付平台对收到的请求处理,返回收银台页面,该页面包含铁路支持的所有银行卡及第三方支付渠道。

(1)旅客可在收银台页面选中并点击铁路电子钱包进行一键支付,此时钱包交易接口将按照和银行约定报文格式封装报文,加密签名后通过Https协议提交银行处理。

(2)银行处理支付请求,同步返回支付响应,钱包交易接口对收到的响应处理,通过页面跳转方式同步通知铁路电子支付平台,在后台通过Https协议在间隔一定时间后异步把支付结果通知到铁路电子支付平台。

(3)铁路电子支付平台同样也按照同步和异步2种方式把旅客支付结果通知到12306,12306收到最终支付响应,即可决定是否出票,铁路电子钱包支付流程,如图3所示。

图3 铁路电子钱包支付流程

1.2.2 铁路电子钱包退款

(1)当旅客对购票订单进行退款时,12306将按照和铁路电子支付平台约定格式封装报文,在后台把退款请求发送到铁路电子支付平台。

(2)铁路电子支付平台按照同样的流程提交到铁路电子钱包交易接口,铁路电子钱包交易接口再提交到银行端。

(3)银行同步处理后把退款响应按原路返回,最终响应会到达12306。

2 铁路电子钱包架构设计

2.1 铁路电子钱包系统架构

铁路电子钱包系统采用多层应用体系作为软件的结构模式,包括数据库服务器、应用服务器、Web服务器、客户端、日志组件等。并与银行间通过专线网络连接,还建立了与铁路内部各业务系统间的连接,从而实现与银行、铁路业务系统之间的数据交换,铁路电子钱包系统框架结构,如图4所示。

图4 铁路电子钱包系统架构

铁路电子钱包系统按照业务功能所属职责范围,划分为以下4 个主要部分:

(1)用户表现层:通过App 端、PC端等把所有功能通过不同方式和渠道展现出来,满足客户的多样化需求。

(2)核心应用系统:核心模块分为2 个子层次,分别是对外的应用接口层及内部的处理支撑层,主要包括账户中心、交易系统、产品系统,应用中心等,是整个支付体系的核心功能。

(3)数据层:主要包括用到的Oracle、Redis及Hbase等数据存储资源。

(4)系统资源层:应用部署后所使用到的软硬件资源,主要包括负载均衡、存储系统、防篡改系统等软硬件资源。

2.2 铁路电子钱包逻辑架构

铁路电子钱包系统从逻辑上包括渠道接入、交易处理、银行接入等几部分,铁路电子钱包逻辑结构,如图5所示。

图5 铁路电子钱包逻辑架构

2.3 铁路电子钱包技术架构

铁路电子钱包按照业务模块进行应用分离,并提供底层数据访问、数据封装、数据传输的技术支撑能力,从而实现各业务层都通过接口访问,避免每层业务改变对其它层次的影响,铁路电子钱包逻辑结构,如图6所示。

(1)访问层:使用Vue+layui 开源组件开发移动端和PC 门户页面,通过前后台分离技术进行单独部署。

(2)通信层:各层交互数据都需经过证书验证,并使用Https或Socket 协议完成前台应用与后台服务的数据交互。

(3)控制层:控制层组件为远程访问提供符合Restful 规范的服务接口,从而完成前台应用对后台服务的接口调用。

(4)业务逻辑层:按功能进行模块划分,各模块保持相对较高的独立性,从而减少功能的耦合度。

(5)数据操作层:主要使用开源对象关系映射(ORM)框架,铁路电子钱包通过使用Mybatis框架对实体类和数据操作类进行调用执行。

(6)数据层:数据层主要采用Oracle 数据库及Redis内存数据库,其中,Redis主要用于存储个人热点信息[9],如账户类信息。

(7)支撑平台:主要包含各种应用中间件、内存数据集群、消息集群等,如在日志系统中使用了高吞吐量的分布式消息系统Kafka[10]。

(8)数据共享层:通过该数据共享平台,对外提供查询访问接口,实现铁路电子钱包与其他系统的信息共享。

图6 铁路电子钱包技术架构

3 铁路电子钱包系统测试

3.1 测试环境

铁路电子钱包当前原型主要包括移动App 端及PC门户端,两个原型分别模拟嵌入在12306App及12306PC门户网页中。

无论是在App端还是PC端,当客户提交购票订单后,都会跳转至铁路电子支付平台收银台页面,旅客在该页面中选择钱包进行支付操作。

3.2 效果分析

3.2.1 使用体验更友好

旅客在12306进行支付时,若选择的是银行,则一般都会跳转至银行卡及密码输入页面,旅客输入信息较多,操作繁琐。

若旅客选择第三方支付如支付宝、微信等,虽会录入信息较少,但需要提前安装软件。

与上面两种支付方式相比,铁路电子钱包由于是嵌入在12306 购票端,故而不用另外下载其它软件,甚至在支付时无需录入任何信息便可一键支付,用户体验更好。

3.2.2 支付耗时少

相对于其它外部支付渠道来说,铁路电子钱包由于是模拟嵌入在12306中,可以做到信息共享。旅客支付时可做到一键支付,最短可在2s内完成整个支付,而一般银行类支付需要耗时15 s,第三方支付则需要耗时8s左右。

3.2.3 支付更安全

相比银行和第三方这类外部支付渠道来说,铁路电子钱包和12306联系更为紧密,同属铁路业务系统产品,无论从技术角度还是业务对接来看,具有更高的支付安全性,可控度比外部支付更高,且手段更为灵活,能最大程度地保证旅客的资金安全。

4 结束语

作为铁路电子支付平台的升级产品,铁路电子钱包可以打破铁路行业现有的支付模式,也能弥补铁路没有自己的电子钱包类产品的缺陷。但同时我们也看到了,目前铁路电子钱包主要提供的都是基础功能,业务类型比较单一。未来,铁路电子钱包可以和银行进行更深度的合作,推出如分期支付,基金理财等更加丰富的业务功能。

猜你喜欢

开户校验银行卡
使用Excel朗读功能校验工作表中的数据
复杂背景下银行卡号识别方法研究
电能表在线不停电校验技术
伪造证件开户风险亟待关注
谁划走了银行卡里的款
精通文件校验的“门道”
基于FPGA的CRC32校验查找表算法的设计