来源:中国一卡通网 作者:不详 发布时间:2014-10-15 15:55:13 字体:[大 中 小]
摘 要:本文设计并实现了一种NFC 近场支付系统,利用SIM 卡实现应用和数据的安全存储,通过手机NFC 控制器与商家POS 机进行通信,运用SOCKET 技术完成POS机与模拟银行支付平台的数据交换,进而实现数据传输及交易过程的安全性,成功实现了在线交易、离线交易、圈存、圈提、交易退款等各种交易过程。
2 系统实现及测试
2.1 技术介绍
为了使前台页面风格统一、实现简便,使用了JQuery EasyUI框架。JQuery EasyUI是一组基于JQuery的用户界面插件集合,它在优化了Ajax使用接口的同时,为Web开发提供了一系列的常用UI组件,包括菜单、对话框、布局、窗帘、表格、表单等等。它是一个优秀的跨浏览器的JavaScript框架,开发者不需要编写复杂的Javascript代码,也不需要对css样式有深入的了解,只需要了解一些简单的 html标签,就可以轻松地打造出功能丰富并且布局清晰美观的用户界面。通过使用EasyUI框架,开发者将更专注于程序逻辑结构及功能的实现。
为了使后台代码简洁易维护,选择了Spring MVC和Hibernate框架。Spring MVC在模型,视图和控制器3方面提供非常清晰的划分,灵活的配置功能使其使用极其方便,该框架的主要优势是其良好的设计和分层架构。而Hibernate框架使数据的持久化操作变得简单方便,可以按照面向对象的方法进行数据库的操作。这两个框架之间有很好的相互支持,Spring MVC框架专门为集成Hibernate提供了接口,通过在Spring MVC的配置文件中配置一个SessionFactory实例来实现Spring MVC和Hibernate的集成。
2.2 POS接入管理系统的实现
POS接入管理系统主要实现了商户信息管理、商户POS机管理、交易请求转发三大功能,其中交易请求转发为核心功能模块。
交易请求转发模块作为POS机和模拟银行支付平台的“路由”,当系统进行在线交易、在线交易退款、离线交易退款、圈存、圈提、同步交易记录时,从POS机传来的交易请求到达POS接入管理系统,POS接入管理系统再将交易请求转发给模拟银行支付平台,从模拟银行支付平台传来交易响应时,将交易响应转发到 POS机。这样的目的是为了解决POS机与模拟银行支付平台的接口不一致问题,缓解了POS机和模拟银行支付平台的数据处理压力。由于POS机数据处理能力较弱,只能运用Socket技术进行通信,所以与POS机之间的接口成为了问题的重点,下面做详细介绍:
考虑到数据的完整接收,在一个TCP连接上只能发送一组命令/响应报文,发送完成后自动断开连接。命令消息发送后等待T秒后未收到响应,应立即重发,再连续发送N-1次后仍未得到响应则停发此消息。参数T、N应可以配置,取值为:T=60秒,N=3。
消息结构由消息头、消息体以及四个字节的校验位组成。其中消息头包括消息类型、版本、消息总长度、消息流水号四部分。消息体包含交易过程中的各种参数,以在线交易为例介绍消息体的结构。
2.3 模拟银行支付平台的实现
模拟银行支付平台主要实现了银行账户管理、交易请求处理、交易记录管理三大模块。
其中交易记录管理模块主要是对过往交易进行查询、生成报表文件等功能,可以根据消费者、商户、交易时间、交易类型等信息进行相应交易记录的查询,也可以生成季度、年度交易报表等文件。
交易请求处理模块主要是处理POS接入管理系统发来的各种交易请求,并给与响应,以在线交易为例,介绍实现方法。在线交易请求采用http接口,传递参数包括交易流水号、交易类型、消费者银行账号、商户银行账号、交易金额等信息,其中敏感信息要采用加密的方式进行传递。而返回的相应信息采用xml文件,文件格式如下:
<tsn>交易流水号</tsn>
<status>0或1</status>
其中status表示在线交易响应状态,0表示在线交易失败,1表示在线交易成功。
2.4 系统测试
实现系统功能之后,通过模拟一个用户使用本系统进行各种交易的过程,测试该系统的可行性以及易用性。下面以电子钱包交易为例,介绍测试过程,首先在POS 机上选择电子钱包交易,输入交易金额,然后将安装有电子钱包卡应用的手机放入POS机的识别范围,从而完成交易过程。其中进行交易前后电子钱包余额状况对比(此处图片省略),交易前后余额减少了相应的消费金额,结果表明电子钱包交易成功。
通过利用模拟银行支付平台对本系统进行测试,在线交易、电子钱包交易、圈存、圈提、交易退款等功能运行正常,结果表明该方案可行、易操作。
3 HCE技术
本文设计实现的近场支付系统是通过SIM卡作为安全模块提供对敏感信息的安全存储并对交易事务提供一个安全的执行环境。当使用安全模块(SIM卡)来提供卡模拟时,安全模块通过NFC芯片中的非接触前端与外部读写设备进行通信,数据的存储和处理都在安全模块中。用户将手机放入NFC终端的识别范围,NFC控制器将从外部读写器接收到的所有数据直接转发到手机内部的安全模块,由安全模块处理,然后再通过NFC控制器将响应数据发送给外部读写终端。
2013年9月,谷歌公布的安卓4.4 版本采用了一项新的技术HCE(Host-card emulation)160 主机卡模拟——用手机的运算能力来模拟芯片卡。在主机卡模拟模式下,不需要提供安全模块,而是由在手机中运行的一个应用或云端的服务器完成安全模块的功能,绕过了手机内置安全模块的限制。
与本文设计实现的系统相比,HCE技术提供了一种安全性稍差但是部署起来非常方便的NFC服务解决方案。HCE技术最大优势是不需要安全模块,而 HCE技术面临的最大难题是其安全性问题,没有本文利用安全模块(SIM卡)设计实现的系统硬件级别的安全性高。当然SIM卡安全模块与HCE支持的 NFC支付两种技术并不是对立的,将两种技术结合起来可适用于不同的市场与应用,最有效的解决方案可能为混合模式。
4 结论
随着移动支付的迅速发展,用户数和交易规模快速增长,用户急需一种快捷方便的近场支付方式。针对这一需求,本文采用基于SIM卡实现的卡模拟方案,设计并实现了一种NFC移动支付系统。该系统利用SIM卡实现应用和数据的安全存储,通过手机NFC控制器与商家POS机进行通信,利用SOCKET技术完成 POS机与模拟银行支付平台的数据交换,进而实现数据传输及交易过程的安全性。本系统成功实现了在线交易、离线交易、圈存、圈提、交易退款等各种交易过程并进行了测试,结果表明方案可行、易操作。最后,分析了用于实现移动支付的新技术HCE并与本文设计实现的系统进行了比较,这两种技术并不是对立的,将两种技术结合起来可适用于不同的市场与应用。
推荐文章
LDM52系列只读卡号模块门禁专用
13.56非接触读卡模块LDM8035
无锡国高供应超高频挡风玻璃标签C116425
智能锁射频刷卡模块射频模块LDM523
广州桑拿锁射频读卡模块LDM523
125KHz低频无源动物跟踪RFID标签C111004
永康牌家用燃气报警器YK-828
m高贵不贵的名片你值得拥有
m透明pvc双面二维码名片广州一恒名片
论坛热帖