基于腾讯小程序的轨道交通二维码乘车方案研究
2020-05-25任好好周健勇
任好好 周健勇
摘 要:研究了一种基于腾讯小程序的城市轨道交通二维码乘车方案。互联网移动支付的二维码乘车方式具备离线和在线支付功能,应用广泛。这种新型的二维码乘车方案解决了传统支付方式不便的问题,可逐渐取代传统的自动售票机,减少购票硬件设备及运营维护成本,提高购票效率。相对于乘客使用自动售票机购取票及交通一卡通等方式,该方案更高效、快捷、方便。
关键词:智能交通系统;轨道交通;地铁支付方式;二维码;腾讯小程序
DOI:10. 11907/rjdk. 191465 开放科学(资源服务)标识码(OSID):
中图分类号:TP319文献标识码:A 文章编号:1672-7800(2020)002-0061-05
英标:Research on Two-dimensional Code Riding Scheme of Rail Transit with Tencent Applet
英作:REN Hao-hao, ZHOU Jian-yong
英單:(School of Business,University of Shanghai for Science and Technology,Shanghai 200093,China)
Abstract:In order to further understand the payment method of subway two-dimensional code from the internal system structure, a two-dimensional code riding scheme for urban rail transit based on Tencents Applet was studied. Compared with the way passengers use the ticket vending machine to purchase tickets and traffic cards, the solution has the advantages of high efficiency, speed and convenience. Through the analysis of the two-dimensional code ride scheme based on Tencents Applet, it is pointed out that the QR code ride mode accepts Internet mobile payment, and has the functions of offline and online payment. The result clarifies that this new two-dimensional code ride solution solves the inconvenience caused by the traditional payment method, and gradually replaces the traditional subway ticket payment method, which reduces the installation and operation maintenance of the ticket purchase hardware equipment. The cost increases the efficiency of ticket purchase; at the same time, passengers can use the mobile phone Tencent software to carry and pay for the QR code.
Key Words: intelligent transportation system; rail transit; subway payment method; two-dimensional code; Tencent Applet
0 引言
城市轨道交通支付系统中引入互联网及移动支付技术,解决了传统城市轨道交通支付系统的问题,提升了地铁服务能力和水平,是目前的热点研究项目[1]。
国外移动支付发展比较成熟的国家地区有欧美、日本和韩国。在欧洲,主要移动支付运营模式是第三方联合运营,即银行作为合作者而不参与移动支付运营[2];在美国,移动支付是主流,用户不仅能通过短信等方式购买数字产品,还能提供货到付款服务[3];在日本最早实现无线数据业务,用户通过手机可以收发邮件、下载游戏等[4];在韩国,以独立于移动网络的移动现场支付为主营模式[5]。
国内移动支付起步较晚。2002年6月中国联通在无锡成功推出第一个“小额支付移动解决方案”试验系统[5];熊冬青等[5]对RFID手机的关键技术进行分析,给出手机关键技术实现方案;张然等[7]借鉴美国等发达国家的NFC使用经验,指出NFC技术是未来银行网络化、电子化、自动化的发展趋势;朱忠迁等[8]设计了一种基于NFC技术的移动支付系统读卡器,该读卡器刷卡距离可控,具有抗干扰、抗冲突等特点,不需要更换手机;张安勤[9]从技术角度比较现有移动支付的典型实现技术及移动支付系统,指出这些系统的优缺点;白丽针[10]对面向3G移动支付安全的3个问题提出可行性解决方案,在支付流程上引入第三方支付工具解决信用问题。
目前对移动支付的相关研究主要在无线技术方面,研究方法集中在分析当前相关技术的局限性并提出改进方案,目的是提出移动支付系统解决方案以适应移动商务需求。在轨道交通移动支付方面,基于腾讯小程序的轨道交通二维码是目前前沿的轨道支付科技手段,是行业研究热点。本文通过对腾讯小程序的轨道交通二维码乘车方案进行研究,分析该方案的内部结构和主要功能,验证该支付手段的实用性,并指出互联网新型地铁支付系统发展趋势。
1 总体方案架构
手机已成为人们出行必不可少的随身携带工具[11],手机用户使用“腾讯乘车码”微信小程序作为出行支付手段,使用二维码扫码进出站,产生进出后的扣款与清算,其主要特点是先乘车后付费。用户先乘车,乘车完成后从用户的微信支付内扣费;支持用户离线生成二维码,用户在无网络情况下可以生成二维码;闸机侧采用离线验证和可降级的在线验证方式[12]。为了提升用户体验,只要闸机正常就能进出站,尽可能减少出现单边账。闸机离线验证二维码合法性后,再到后台验证用户多进多出情况。如果闸机连接不上地铁云平台,或地铁云平台出现故障,默认后台验证通过,尽可能减少出现单边账。
“腾讯乘车码”方案主要由腾讯后台、腾讯乘车码小程序、地铁云平台、闸机、自动售检票系统或清分系统6大系统组成,如图1所示。
(1)腾讯后台。腾讯后台获取授权数据,并与合作伙伴后台开通双方账户绑定(可选),闸机实时上报进出站记录到地铁云平台,地铁云平台将进出站记录上报到腾讯后台,腾讯后台实时推送到小程序提醒用户。
(2)腾讯乘车码小程序。用户用腾讯微信乘车码小程序开通使用业务。获取证书用于离线生成二维码,该卡证书作为离线生成二维码的唯一凭证加密保存在用户手机上;手机离线生成二维码后,用户在闸机扫码进出站。
(3)地铁中心服务器。地铁云平台下载腾讯密钥,收到出站记录后实时进行进出站匹配,匹配成功后向腾讯后台发起扣款。
(4)闸机。部署在车站,支持二维码读取验证、开闸、交易上报等功能。闸机从地铁云平台下载腾讯密钥和地铁密钥,用于二维码验证;闸机调用腾讯提供的二维码,对二维码合法性和有效性进行验证,同时对授权数据进行验证。全部验证通过后为有效二维码,闸机访问地铁云平台做多进多出检查,决定是否允许用户进出站。
(5)客服终端。部署在车站,用于异常情况下协助用户进出站。腾讯后台收到扣款请求,若扣款成功,则推送扣款成功消息到小程序,小程序展示支付成功页;若扣款未成功,则提供异常情况帮助。
(6)自动售检票系统或清分系统(AFC/ACC)。根据实际情况上报乘车记录到该系统,用于对账。
2 系统功能
2.1 业务流程
(1)开通。用户打开“腾讯乘车码”小程序,申请地铁乘车码,如图2所示。由腾讯后台进行用户身份申请、使用协议确认等必要操作。用户身份审核确认后,向地铁云平台系统发起开通申请,地铁云平台系统执行地铁账号分配等操作。操作成功后,向腾讯后台系统反馈开通结果(可选);腾讯后台系统绑定用户与地铁账号(可选),提示用户开通成功。
(2)进站。用户打开腾讯乘车码小程序,离线生成二维码;腾讯乘车码小程序生成二维码后,用户刷二维码;闸机读取二维码后,对二维码进行合法性校验;闸机验证二维码通过后,再访问地铁云平台,验证用户重复进站情况;地铁云平台返回验证结果[13]。闸机只有收到地铁云平台明确的拒绝进站指令才拒绝进站,其它情况下都会开闸让用户进站。闸机在本地保存进站记录;闸机准实时上报进站记录到地铁云平台;地铁云平台保存进站记录并推送到腾讯后台;腾讯后台推送进站信息到用户侧提醒用户已进站,如图3所示。
出现异常情况时,客服人员查询用户进站记录。如果确认用户的上一次进站记录是本站,则取消本次进站记录,让用户重扫进站;后台对取消的进站记录计费方式如下:如果扫码时间在规定时间内(如20分钟内),免收费;其它按照多进多出规则处理;其它原因建议乘客使用其它方式进站。
(3)出站。用户打开腾讯乘车码小程序,离线生成二维码。腾讯乘车码小程序生成二维码后,用户刷二维码;闸机读取二维码后,对二维码作合法性校验。闸机验证二维码通过后,再访问地铁云平台,验证用户重复出站情况;地铁云平台返回验证结果;闸机只有收到地铁云平台明确的拒绝出站指令后才拒绝出站,其它情况下都会开闸让用户出站;闸机在本地保存出站记录,闸机准实时上报出站记录到地铁云平台;地铁云平台保存出站记录并推送到腾讯后台,腾讯后台推送出站信息到用户侧提醒用户已进站,如图4所示。
出现异常情况时,客服人员查询用户出站记录,如果确认用户的上一次出站记录是本站则取消本次出站记录,让用户重扫描出站;后台对取消的出站记录计费方式如下:如果扫码时间在规定时间内(如20分钟内),免收费;其它按照多进多出规则处理;其它原因如手机没电等,客服登记用户出站信息后放行。
(4)定期密钥更新。二维码经腾讯后台私钥签名,闸机需要下载对应的公钥,验证签名合法性;腾讯后台公钥存在“有效期”限制,闸机需要根据公钥有效期定期向腾讯后台下载最新公钥列表,如图5所示。
(5)黑名單用户推送。为了快速禁止某些用户的恶意行为,闸机支持准实时接受黑名单列表,用于准实时停止用户业务;腾讯后台将黑名单推送到地铁云平台。地铁云平台在不影响闸机正常运行的情况下将黑名单推送到闸机,或者闸机以较短的时间间隔定期拉取增量黑名单列表,达到在规定时间内停止用户服务的目的。
2.2 功能流程
(1)时间对齐。腾讯后台与地铁ACC时钟对齐:通过小程序及腾讯后台与地铁闸机进行扫码,地铁云平台获取互联网时间,以及返回给地铁闸机的互联网时间信息,形成互联网时间验证二维码有效期,在地铁云平台通过互联网时钟服务器保存互联网时间[15]。
小程序与腾讯后台时钟对齐:打开小程序与腾讯后台进行时间对齐,由腾讯后台返回给小程序时钟信息,保存差值,生成二维码时取生成时间,即本地时间减去保存的时间差值,如图6所示。
(2)错误数据上报。乘客进行二维码过闸扫码出现错误时,由闸机、地铁云平台及腾讯后台进行故障处理。闸机出现扫码故障时,上报故障数据给地铁云平台;地铁云平台保存故障数据,上传错误数据给腾讯后台;腾讯后台保存故障数据,然后对SDK错误进行监控报警,并且输出监控报表,如图7所示。
上报项目说明见表1。
2.3 进出站匹配流程
(1)匹配流程。收到乘客扫码记录上报数据,对上报数据进行进出站扫码记录判断[16]。如果是进站则实时记录,如果是出站扫码记录,则查看该用户当日未匹配的进站记录,进站记录按时间先后顺序排列,取最后一条进站时间记为该进站记录所匹配的进站时间记录,检查出站时间和进站时间的差值,大于指定时间则直接结束,小于指定时间则匹配成功,生成订单并扣款,最终完成该单的进出站匹配,如图8所示。
使用上述匹配流程,只有出站1和进站2同时延迟上报或丢失,且进站1和出站2的时间间隔小于规定时间(如2小时)的情况下,才会将出站2和进站1匹配,这种情况出现的概率很低,该匹配错误可以对用户补差额。
(2)匹配处理。日终对当日未完成匹配的扫码记录进行处理,按照实时匹配的方式对每个用户未匹配扫码记录进行匹配;对当日未完成匹配的扫码记录进行匹配,对仍不能匹配的扫码记录作单边帐或免收费处理。
3 二维码及协议介绍
3.1 二维码
(1)二维码结构。二维码由标识码和base64数据体构成,标识码用于终端快速过滤非本规范二维码,其结构如表2所示。
(2)二维码验证体系。二维码验证体系由地铁云平台、腾讯后台、闸机和手机客户端4大模块构成。地铁云平台采用合作方腾讯的秘钥进行交易上传、TAC验证和公钥下载;腾讯后台向手机客户端使用私钥签名卡证书及下发;闸机进行用户子密钥校验,手机客户端进行卡证书接收及时间差计算。整个校验系统的二维码数据都是地铁授权数据,卡证书主要内容字段有用户ID、证书起始时间、码有效时长等,有合作方腾讯私钥签名,从而生成一个有动态数据生成时间、扩展字段及TAC的二维码。验证二维码的合法性和有效性,若验证通过,该接口会返回腾讯签名的扫码记录,合作伙伴需要把该扫码记录作为扫码数据的一部分上传到后台,并且通过订单一起推送到腾讯后台作为验证凭证。
3.2 协议说明
(1)闸机SDK功能和集成。闸机SDK有提取二维码基础数据和验证二维码扫码有效性功能,闸机SDK集成在闸机程序加载,通过定义的函数获取公钥编号并验证二维码合法性,闸机负责磁盘存储和网络访问。
(2)验证流程。获取二维码数据,对二维码数据进行解析。首先,判断格式是否正确,版本和算法是否支持;再进行验证卡证书签名,验证动态数据签名;获取本地时间计算二维码有效期,校验二维碼的生成时间进行进出站匹配,进而判断余额是否超限,是否充足;最后进行匹配扫码记录,扫码记录进行签名,解析通过后可扫码出站。
(3)开放平台协议。无论是请求还是应答,原始签名串按以下方式组装成字符串:所有参数按照字段码从小到大排序后拼接而成,空值不传递,不参与签名组串;所有参数指通信过程中实际出现的非空参数,即使是接口中无描述字段也要参与签名组串;签名原始串中,各字段名和字段值都采用原始值;腾讯乘车码接口协议可能会由于升级增加参数,注意签名和验签时允许这种情况存在[18]。
3.3 接口说明
上传订单数据到腾讯后台进行扣款。公交场景下,一次扫码乘车产生一笔交易;地铁场景下,一次乘车有出入站两次扫码,出站扫码产生交易并需要扣费。订单查询接口在合作伙伴对订单状态不确认时,可通过该接口查询订单信息。
账单文件第一行为字段说明行,分别为商户订单号、支付订单号、商户号、金额(分)、时间。商户订单号对应商户自己推单时用的订单号,支付订单号对应微信或财付通平台账单文件里的“商户订单号”,商户号为钱款流入的商户号,交易时间是微信支付或财付通结算的时间,与微信或财付通商户平台下载的账单中的时间一致[21]。账单倒数第二行为固定汇总说明行,总条数、总金额账单倒数第一行对应固定汇总的总条数和总金额。文件末尾数据为文件汇总数据时,表示账单文件完整下载;同一商户订单号可能会对应多条支付订单,该订单实际收款金额为多条支付订单金额的总和。
4 结语
移动互联网的迅速发展带动了城市轨道交通移动支付及二维码支付的发展,移动互联网终端产品扫码支付小程序在轨道交通领域得到广泛应用,互联网技术的创新成果与移动支付融合发展形成新的移动支付方式,信息化、商业化、数据化不断推动我国城市轨道交通服务行业的发展。城市地铁基于腾讯二维码小程序支付方式就是在这种背景下产生的,是对传统支付方式的一次技术革新。
移动支付已应用到轨道交通售票领域,在地铁车站AFC系统架构、自动售票机的现金流处理等环节都引入了二维码乘车设计。本文重点介绍了二维码乘车硬件及软件技术实现,阐述了基于腾讯小程序的二维码乘车方案高效、快速、便捷的性能设计。此设计方案成功应用于现有各大城市地铁线路运营,通过运营数据验证了二维码乘车方案的可行性。互联网参与下的轨道交通移动支付方案将来会更加成熟稳定。
参考文献:
[1] 杨贵松. 一种二维码地铁取票机的研究与实现[J]. 机电工程技术,2017, 6(1):1-2.
[2] 杨政军. 二维码电子车票在自动售检票统中的应用[J]. 城市轨道交通研究,2016,19(4):3-4.
[3] 吴友宝,徐建闽. 二维码和电子支付在地铁票务系统的应用研究[J]. 电子世界,2014(11):2-4.
[4] 湛维昭,张森. 城市轨道交通互联网票务系统研究[J]. 自动化应用,2017(5):2-3.
[5] 李道全. 城市轨道交通AFC系统支付方式现状及发展[J]. 都市快轨交通,2016,29(1):59-62.
[6] 闫鸣宇,陈楠. 移动支付在城市轨道交通中的应用研究[J]. 铁路通信信号工程技术,2016,13(3):72-75.
[7] 龚迥. “互联+票务”在地铁AFC系统的支付应用研究[J]. 科技风,2016(18):227-228.
[8] 王钟. 移动支付在城市轨道交通中的应用前景[J]. 大陆桥视野,2017(12):3-4.
[9] 孙飞. 移动支付在轨道交通自动售检票系统中的设计与应用[J]. 商品与质量,2017(50):1-4.
[10] 汪璐. 新型移动支付在AFC系统中的应用[J]. 科技风,2017(10):1-2.
[11] 李帅. 轨道交通车站关键设备智能监控和健康维护系统的研究[D]. 上海:东华大学,2011.
[12] 郑交交. 构件系统演化一致性的判定方法[J]. 计算机科学,2018(10):2-5.
[13] CERVERA A. Analysis of j2me for developing mobile payment systems[D]. Master's Thesis in Information Technology,Electronic Commerce. IT University of Copenhagen, 2002.
[14] NAMBIRS S, LUCT L L. Analysis of payment transaction security in mobile commerce[C]. Proeeedings of IEEE International Conference on Information Reuse and Integration, LasVegas, USA, 2004: 475-480.
[15] 裴順鑫,张宁. 地铁自动售检票系统的互联标准[J]. 都市快轨交通,2013,20(5):38-41.
[16] 吴明欣. 轨道交通自动售检票系统关键技术研究与应用[D]. 上海:上海交通大学,2007.
[17] MALLAT N, R0SSI M, TUNAINNEN V K. The impact of use context on mobile services acceptance: the case of mobile ticketing [J]. Information & Management, 2009 (46):267-275.
[18] RIVEST R,SHAMIR A. Payword and micromint: two simple micropayment schemes[C]. In Proc. Security Protocols, LNCS 1189. Berlin: Springer Verlag, 1996(1189):69-87.
[19] 顾洋,陈青云. 移动支付在轨道交通自动售检票系统中的设计与应用[J]. 都市快轨交通,2016,29(6):114-119.
[20] 文佳. 我国移动支付发展现状、问题及对策[J]. 金融科技时代,2017(3):54-58.
[21] 王宇伟,张辉. 基于手机的NFC应用研究[J]. 中国无线电,2011:6(1):3-8.
(责任编辑:杜能钢)