摘要:针对传统票务系统的弊端,伴随着智能手机的普及,设计一种以移动智能设备为终端,通过在终端上调用第 三方移动支付接口完成安全支付,结合后台服务器与数据库,通过近场通信方式或者二维码完成验票的票务系统,从支付到取票验票等一整套流程摆脱了传统票务的 各种不便之处。通过构建原型系统设计与运行证明,该票务系统架构可应用在各行业票务系统中,较好地优化票务的用户的体验,满足了未来票务电子化的发展趋 势。
1 引言
目前,在票务系统中应用的票一直以来以纸质或塑料等物质形式存在,同时售票验票退票等过程必须由人工来完成,由于传统票务应用过程中人为干预过 多使得在使用中存在很多弊病:如排队购票等待时间长,验票等待时问长,不易防伪、辨别真假等。而在票务系统中,票的实质意义在大多数情况下只是一种享受服 务的权利凭证,并且票的应用具有一次使用、唯一存在、使用时间短暂等特点。面对用户与票务公司对现有票务系统模式的诸多抱怨,势必需要引入新的运营模式。
随着智能移动终端的迅速普及,移动支付技术得到了越来越广泛的应用,伴随着移动终端新技术不断提高,通过移动支付来完成购票,使用二维码或NFC(近场通信技术)完成用票验票,构建一套先进合理的电子票务系统构架,解决目前传统票务系统中存在的上述弊端问题。
2 移动电子支付相关技术
2.1 移动支付技术
移动支付也称为手机支付,就是允许用户使用其移动终端(通常是手机)对所消费的商品或服务进行账务支付的一种服务方式。单位或个人通过移动设 备、互联网或者近距离传感直接或间接向银行金融机构发送支付指令产生货币支付与资金转移行为,从而实现移动支付功能。随着移动互联网和智能手机的兴起,移 动支付作为第三方支付的重要分支也日益凸显出重要的地位,在移动支付巨大的市场推动下,移动运营商金融机构纷纷推出移动支付解决方案,发展出如移动支付 宝,移动银联支付等成熟的第三方支付移动客户端。移动支付产业链主要包括移动运营商、金融机构、第三方业务提供商、终端和设备提供商、商家和用户等。本文 将以移动支付宝为例,作为系统的第三方支付端,通过它提供的安全支付服务,可以方便快捷的完成支付工作。支付宝安全支付服务是安装在本地Android操 作系统上的一个组件,能够为其它应用程序提供便捷、安全以及可靠的支付服务。正如平常系统上所提供的电子邮件和电话服务一样。
2.2 二维码技术
二维条码/-维码(dimensional barcode)按一定规律用特定的几何图形在黑白相间分布的图形平面(二维方向)上记录数据符号信息,目前最常见的是QR码,它由空白区包围,包含功能 图形和编码区格式两部分。功能图形包括位置探测图形、位置探测图形分隔符、定位图形和校正图形。编码区格式包括格式信息、版本信息和数据纠错码字。它使用 若干个与二进制相对应的几何形体来表示文字数值信息,通过图像输入设备或光电扫描设备自动识读以实现信息自动处理。二维码生成过程就是条码的编码,其编码 过程就是将可读信息转换成码字用来绘制条码,然后再加上必要的附加信息。如图1所示为二维码生成流程。
图1 二维码生成流程
2.3 NFC技术
NFC(Near Field Communication,近场通信技术)是一种短距离接触式的通信方式,它结合了非接触式感应以及无线连接技术,作用于13.56Mhz频带,传输距 离大约10cm,传输速率可为106kBit/s、212kbit/s、424kbit/s,将来可提高至1Mb左右。NFC技术符合国际标准化组织的 ISO18092、ISO21481标准,兼容无线智能卡ISO14443标准,符合欧洲计算机协会的EMCA-340、352和356标准,这使得 NFC技术充分具备了未来近距离无线互联设备所应有的低功率,低价格等特点。Google最近推出的Android智能手机,通过近场通讯(NFC)允许 用户在NFC tag和
Android设备或者两个Android设备间共享小负载数据。
NFC手机内置NFC芯片,组成 RFID模块的一部分,可以当作RFID无源标签使用,用来支付费用;也可以当作RFID读写器用作数据交换与采集。NFC技术支持多种应用,包括移动支 付与交易、对等式通信及移动中信息访问等。通过NFC手机,人们可以在任何地点、任何时间,通过任何设备,与他们希望得到的娱乐服务与交易联系在一起,从 而完成付款,获取海报信息等。NFC设备可以用作非接触式智能卡、智能卡的读写器终端以及设备对设备的数据传输链路,其应用主要可分为以下四个基本类型: 用于付款和购票、用于电子票证、用于智能媒体以及用于交换、传输数据。NFC方案是未来移动支付技术的发展方向,具有最佳用户体验。但需要更多手机终端厂 商推出支持NFC技术的手机终端,进一步降低业务推广成本。
3 移动电子票务系统设计与实现
3.1 系统架构
本文所设计的原型系统结合移动智能终端,通过第三方移动安全支付平台完成支付,配合服务器与验票终端在线检票,系统组成图如图2所示。
图2 系统整体组成图
在系统架构下,系统流程如图3所示。
图3 支付系统流程图
3.2 智能终端中票务流程与实现
智能终端采用相应的系统SDK()~I Android)进行票务应用开发,通过采用第三方支付平台库的方式完成终端支付功能,其票务支付和使用流程图如图4所示。
圈4 APP支付使用流程图
在调用移动支付宝平台支付时,需要提交订单信息or—derInfo,通过调用接口函数将门票生成支付宝规定的订单格式,其中参数以“key=value”形式呈现,参数之间以“&”分割,所有参数必须完整。格式如图5所示。
图5 支付宝平台支付订单格式
其中内部关键词含义如下:partner代表由支付宝分配给应用开发商的ID,out—trade—no指商家统一定义的订单编 号,subject是商品名称,seller代表账户ID,body代表商品的具体描述信息,total_fee表示该次商品支付额,notifyurl 表示商家提供的url。支付宝服务端在订单支付结束时会回调这个url,sign_type表示交易加密签名类型。
调用安全支付后,商户提供一个http协议的接口,包含在参数里传递给安全支付,即支付宝服务器在支付完成后,会用POST方法调用notify—url,以xml为数据格式传输支付结果。通过 resultStatus以及result字段的值来综合判断并确定支付结果。在resultStatus一9000,并且suecess一”true” 以及sign=”XXX”校验通过的情况下,证明支付成功。其它情况归为失败。当交易成功后,终端向票务服务器发起请求,请求的参数包括交易成功号与该终端IMEI码,然后等待服务器返回加密电子票数据串及其他相关票务信息,返回成功后对这两个字段在终端进行保存。
当用户使用电子票时,读取加密电子票数据串生成二维一码或载入NFC缓存区。以目前应用来看,二维码电子票是当前主流的方式。在Android 上,通过SurfaceView控件来完成二维码图片的展示,其主要流程是首先将加密电子票数据流转换成二进制数组,然后引用工具包将二进制数组转换为二 维布尔值数组,然后循环将点在View中画出。其核心转化代码如下:
如果终端支持NFC(以Android为例),可以通过SDK中相应的NFC库方便快捷的加密电子票数据串载入NFC中,首先是需要加入以下权限:
在Android票务应用内,当系统检测到周围有NFC读取器终端时会自动调用预先加载的回调函数将MSG加入如NFC缓存中,这样终端就获取到了电子票的加密数据串,然后连接服务器进行识别。当使用成功后,自动将该门票设置为已使用状态。
考虑到整个票务系统的可扩展性,可以将以上票务系统中的功能接口进行封装打包成JAR文件供不同公司进行二次功能开发,满足不同票务系统的特殊性。
3.3 服务器端关键技术实现
图6 服务器端架构图
该系统原型服务器端实现结构图如图6所示,参照SOA架构完成各个功能模块的实现,接口层通过Servlet监听实现业务需求发出的请求,以及 将处理完的数据通过JSON格式返回给不同的请求终端。业务层是将接口解析出的数据根据请求类型做处理,并调用内部方法完成票务处理,加密,检测票加密字 段等相关操作,数据层负责票务系统的所有票务数据记录与备份,考虑到未来多种支付平台的可能性,通过SOA架构的特点,可以在系统接口层和业务层置换成新 的支付平台以供使用,而在用户的智能终端并不需要做改动。
服务器端支付模块的主要流程机制是通过Servlet监
听前面移动支付宝平台指定的 URL,当用户支付成功后自动调用该Servlet的相应方法,对成功支付的订单做参数解析,并将交易号,时间,订单信息等保存人后台数据库中。用户终端 交易成功后,会向该服务器发送交易号及该终端的IMEI码,服务器通过该唯一交易号和终端IMEI码生成一条MD5加密字符串作为该交易的电子票数据串, 保存人数据库,然后返回给用户终端。核心代码如下:
当服务器接受来自检测终端的请求,如二维码验票终端和NFC检测终端,其主要流程机制是通过检票终端发起的网络请求获取到待检票的票加密数据 串,通过比对数据库中票的门票ID与加密数据串检测该送检票是否匹配,然后将结果通过返回给检测终端进行处理。对于其他业务请求,如退票改签等,其流程都 是通过与票务服务器相对应接口进行处理,然后调用第三方支付平台后对后台数据库做相应修改。
4 实验结果
图7 系统运行截图(支付,支付成功,使用电子门票)
系统实现分为客户端和服务器端两部分,客户端使用Java和Android SDK开发,服务器端使用Tomcat 6.0与Servlet部署实现,第三方支付平台使用支付宝Android库配合完成。图7为系统实际运行中客户端截图。由系统实际运行效果可知,在手机 2G网络下,从建立连接安全支付到付款成功,耗时10s左右,大大减少了某些场合的排队买票时间,通过唯一交易号多边认证,提供了系统的可靠性。
付款成功后,通过服务器成功获取到加密票数据串,并在使用时生成二维码,普通条件下可简单扫描使用,在高安全性条件下可以绑定手机IMEI码结合与服务器验证使用,提高了系统的安全性。
5 结语
随着移动互联网发展与电子支付的普及,以智能终端为载体、未来具备无限发展潜力的移动互联网正逐渐渗透到人们的生活中,基于纸票和现金的传统票 务系统已经不能满足现代社会的需求。本文设计的移动支付系统,通过结合第三方安全支付平台、二维码和NFC技术,构建了更加成熟的电子票务系统,使用终端 IMEI码与电子票MD5加密数据串,大大提高了系统的可靠性与安全性,符合未来票务电子化的发展趋势。(作者简介:陈智翔,男,硕士研究生,研究方向: 移动互联网,信息自动化。吴黎明,男,教授,研究方向:信息自动化,物联网。廖庆富男,硕士研究生,研究方向:物联网。)