王興成,武婷婷,甘人才,李燕波
(中國鐵道科學(xué)研究院集團有限公司 電子計算技術(shù)研究所,北京 100081)
隨著我國城鎮(zhèn)化進程的推進,中心城市與衛(wèi)星城市之間、城市群之間的公共交通需求一直在快速增長。未來我國高速鐵路運營將更加注重城際化客運服務(wù),不斷創(chuàng)新服務(wù)方式,完善服務(wù)標準,落實便民利民措施,使高速鐵路的建設(shè)與重點經(jīng)濟區(qū)域的發(fā)展緊密契合。
城際鐵路旅客出行具有短周期、高頻次的特點[1],為滿足城際鐵路旅客日常通勤出行、快速進出站及便捷支付的現(xiàn)實需求,鐵路既有的先購票后乘車慣例及實名制驗檢票業(yè)務(wù)亟需優(yōu)化。
為支持大灣區(qū)和粵港澳建設(shè),按照中國國家鐵路集團有限公司(簡稱:國鐵集團)的統(tǒng)一部署,廣州鐵路局集團有限公司(簡稱:廣州局)積極探索城際鐵路出行新模式,建設(shè)城際鐵路智能乘車碼系統(tǒng),讓旅客到站后能夠快速掃碼進出站,隨到隨走,先乘車后支付,促進鐵路客運服務(wù)方式轉(zhuǎn)型[2],助力大灣區(qū)一小時生活圈提速。
城際鐵路智能乘車碼系統(tǒng)由業(yè)務(wù)受理終端、鐵路客票發(fā)售與預(yù)定系統(tǒng)(簡稱:客票系統(tǒng))、檢票系統(tǒng)、支付平臺和業(yè)務(wù)基座5 部分組成,系統(tǒng)架構(gòu)如圖1 所示。
圖1 城際鐵路智能乘車碼系統(tǒng)架構(gòu)示意
(1)業(yè)務(wù)受理終端:主要包括鐵路12306 支付寶小程序(簡稱:小程序)、閘機終端、車站窗口、自助售取票機、列車手持終端等,提供面向旅客的各類快捷服務(wù)。小程序主要完成實名認證、乘車碼開通、支付方式簽約/解約、乘車碼展示、乘車記錄查詢等;閘機終端主要完成乘車碼解析、人臉照片采集、實名核驗、席位展示等;車站窗口為車站旅客提供服務(wù)[3],主要完成乘車碼進出站異常處理、實名核驗、乘車記錄查詢及報銷憑證出具;自助售取票機主要為旅客提供乘車記錄查詢和報銷憑證打印;列車手持終端主要用于列車檢票、列車補票、乘車碼識別等。
(2)客票系統(tǒng):為業(yè)務(wù)受理終端提供后臺服務(wù),實現(xiàn)賬戶管理、簽約關(guān)系管理、人臉比對、乘車碼生成、乘車記錄查詢、進出站信息提示、異常自動處理、交易處理、信息推送等功能。
(3)檢票系統(tǒng):為閘機終端和車站窗口提供后臺服務(wù),實現(xiàn)乘車碼核驗、檢票處理、席位處理、人臉比對與實名核對、進出站信息配對、異常交易處理、存根生成、交易發(fā)起、賬單生成等功能。
(4)支付平臺:為客票系統(tǒng)、檢票系統(tǒng)提供電子支付服務(wù)[4],實現(xiàn)支付方式簽約/解約、支付能力查詢、代扣支付、墊資支付、對賬單處理、交易對賬、差異處理、資金結(jié)算、資金核算[5]等功能。
(5)業(yè)務(wù)基座:為系統(tǒng)應(yīng)用提供基礎(chǔ)運行環(huán)境、運維保障和業(yè)務(wù)保障?;A(chǔ)運行環(huán)境依托鐵路云計算平臺構(gòu)建,利用云計算平臺提供的虛擬化計算資源、系統(tǒng)軟件和工具創(chuàng)建和部署應(yīng)用程序;運維保障包括監(jiān)控告警、后臺管理、信息維護、日志分析及報表統(tǒng)計等運維管理相關(guān)功能,業(yè)務(wù)保障包括旅客投訴、營銷展示等客戶服務(wù)支持。
旅客通過小程序在線開通掃碼乘車業(yè)務(wù)。旅客綁定實名認證支付寶賬戶,經(jīng)人臉識別后,開通乘車碼并簽約支付寶代扣支付方式后,即可使用乘車碼掃碼乘車。
(1)乘車碼開通申請:旅客登錄本人實名認證的支付寶賬戶,通過小程序線上申請開通乘車碼。目前,旅客持身份證、港澳通行證、臺灣通行證、港澳居住證、臺灣居住證等證件可在線辦理乘車碼開通,持其他證件時需前往車站窗口辦理。
(2)身份認證及開通:旅客通過小程序完成人臉識別認證后,即可完成乘車碼業(yè)務(wù)開通。申請用戶的人臉照片信息由支付寶傳輸至系統(tǒng),并由系統(tǒng)加密保存,供進出站閘機及列車手持終端等在檢票、補票環(huán)節(jié)進行人臉比對。
(3)支付寶代扣簽約:乘車碼開通成功后,旅客還需簽約支付寶代扣支付方式。旅客仔細閱讀并勾選同意支付寶代扣協(xié)議,即可完成支付寶代扣簽約。旅客發(fā)起簽約后,系統(tǒng)內(nèi)部逐級轉(zhuǎn)發(fā)簽約請求,與支付寶完成交互處理后逐級返回簽約參數(shù),最終完成旅客實名12306 賬戶與同名支付寶簽約賬戶的綁定,并通過小程序向旅客展示支付寶代扣簽約結(jié)果。
旅客通過小程序在線關(guān)閉掃碼乘車業(yè)務(wù)。為保證鐵路運輸收入資金安全,先由客票系統(tǒng)完成旅客12306 賬戶與支付寶賬戶綁定關(guān)系的解除和乘車碼業(yè)務(wù)的關(guān)閉,再逐層處理支付寶代扣支付方式解約請求,并向旅客通知解約結(jié)果。
(1)關(guān)閉乘車碼申請:旅客可通過小程序或支付寶賬戶發(fā)起乘車碼業(yè)務(wù)關(guān)閉請求,在支付寶賬戶中發(fā)起關(guān)閉請求會自動跳轉(zhuǎn)至小程序。
(2)業(yè)務(wù)核實:系統(tǒng)判斷旅客是否有未完成的乘車記錄和未扣款成功的交易記錄。
(3)綁定解除與乘車碼關(guān)閉:經(jīng)核實,旅客乘車碼業(yè)務(wù)無待處理記錄時,系統(tǒng)先行完成旅客12306賬戶與同名支付寶賬戶的綁定關(guān)系的解除,關(guān)閉旅客乘車碼業(yè)務(wù),發(fā)起支付方式解約請求。
(4)支付寶代扣解約:系統(tǒng)與支付寶交互處理,完成旅客支付寶代扣支付方式解約,并通過小程序向旅客推送解約結(jié)果通知。旅客完成支付方式解約后,需再次簽約并后才能正常使用乘車碼。
旅客在小程序上打開乘車碼,系統(tǒng)會自動生成并定時更新乘車碼。
(1)未完成訂單檢測:旅客打開乘車碼時,系統(tǒng)會先判斷該旅客是否有未完成的訂單。若存在未完成的單邊交易(指旅客進站或出站未生成正常記錄),系統(tǒng)提醒旅客進行補登處理。
(2)賬戶支付能力核實:若旅客沒有未完成的訂單,系統(tǒng)向支付寶發(fā)起旅客賬戶支付墊資能力查詢請求,支付寶對旅客賬戶風(fēng)險等級、是否有墊資未還款及相應(yīng)償付能力進行核實,并向系統(tǒng)返回核實結(jié)果。
(3)乘車碼生成:在核實旅客賬戶支付能力無異后,系統(tǒng)為旅客實時生成乘車碼,并通過小程序向旅客展示乘車碼。
(4)更新周期設(shè)置:完成乘車碼更新周期(如每隔2 min)的設(shè)置;客票系統(tǒng)后臺服務(wù)生成乘車碼后,會根據(jù)系統(tǒng)設(shè)置的更新周期,動態(tài)更新乘車碼,以防止旅客因乘車碼被偷拍盜用造成資金損失。
旅客在進出站時,打開小程序出示乘車碼,通過閘機終端驗證乘車碼,系統(tǒng)自動生成乘車訂單并完成訂單計價。小程序進出站掃碼頁面如圖2 所示。
圖2 小程序進站、出站掃碼頁面
(1)掃碼進站與乘車訂單生成:旅客進站時向閘機出示乘車碼,系統(tǒng)判斷旅客是否有未完成的乘車交易記錄,若存在未完成交易記錄,則引導(dǎo)旅客通過車站窗口處理。系統(tǒng)驗證旅客乘車碼是否有效,并通過人臉識別完成旅客身份核驗后,由檢票系統(tǒng)自動為旅客分配席位,閘機開閘放旅客進站;客票系統(tǒng)后臺服務(wù)推送旅客進站信息,小程序向旅客展示進站消息與乘車訂單狀態(tài)。
(2)掃碼出站與乘車訂單計價:旅客出站時向閘機出示乘車碼,系統(tǒng)驗證旅客乘車碼是否有效,并通過人臉識別核驗旅客身份;乘車碼核驗通過后,系統(tǒng)自動匹配旅客進站記錄并計算票價,生成鐵路客票存根和交易記錄并自動扣款,閘機開閘放旅客出站;客票系統(tǒng)后臺服務(wù)推送旅客出站信息,小程序向旅客展示出站消息與訂單狀態(tài);如果未匹配到旅客進站信息,提醒旅客前往人工窗口處理。
旅客使用乘車碼掃碼出站時,系統(tǒng)借助支付寶委托代扣業(yè)務(wù)向旅客提供快捷支付服務(wù)。使用乘車碼出站時的快捷支付頁面如圖3 所示。
圖3 乘車碼出站快捷支付頁面
(1)自動扣款:旅客出站掃碼時,系統(tǒng)與支付寶進行交互,依據(jù)乘車訂單計價自動完成旅客賬戶扣款。自動扣款前,支付平臺會對旅客交易記錄進行重復(fù)性校驗,避免旅客重復(fù)支付。自動扣款不成功時,系統(tǒng)向支付寶發(fā)起代扣請求。
(2)支付寶代扣:支付寶接收代扣請求后,進行資金代扣處理,并向系統(tǒng)返回代扣結(jié)果。
(3)支付寶墊資:支付寶代扣失敗時,系統(tǒng)向支付寶發(fā)起墊資請求,支付寶審核后完成墊資扣款,并向系統(tǒng)返回墊資扣款結(jié)果。
(1)客票數(shù)據(jù)入庫:在旅客乘車結(jié)束后的T+1日凌晨3:00,客票系統(tǒng)后臺服務(wù)根據(jù)客票存根和交易信息生成前一日客票交易對賬單,由支付平臺完成客票交易對賬單入庫。
(2)支付寶數(shù)據(jù)入庫:在交易的T+1 日凌晨3:00,支付寶將前一日所有成功的乘車碼交易記錄生成對賬單,并發(fā)送給支付平臺,由支付平臺完成支付寶交易對賬單入庫。
(3)交易對賬:支付平臺采用并行分布式技術(shù)[6]和大數(shù)據(jù)技術(shù)[7],對客票交易明細、支付平臺交易明細、支付寶交易明細進行逐筆核對,完成對賬結(jié)算[8];全部交易核對一致后,將對賬結(jié)果發(fā)送給支付寶。
(4)差異處理:交易對賬結(jié)果出現(xiàn)差異時,支付平臺將交易差異數(shù)據(jù)于9:00 前發(fā)送給支付寶,支付寶按照協(xié)議要求進行賠付,并于14:00 前將賠付完成結(jié)果通知支付平臺,以便完成后續(xù)的資金結(jié)算業(yè)務(wù)。
(1)生成結(jié)算單:系統(tǒng)依據(jù)客票存根及交易信息生成客票交易對賬單匯總信息,在交易T+1 日15:00 前,由支付平臺按照該匯總信息向支付寶發(fā)起路局乘車碼資金結(jié)算請求[9]。
(2)結(jié)算處理:支付寶收到結(jié)算請求后,將乘車碼票款資金結(jié)算至路局運輸收入專戶,鐵路局集團公司收入部按照國鐵集團財務(wù)部要求完成運輸收入的上繳。支付寶結(jié)算完成后,將資金結(jié)算結(jié)果返回至系統(tǒng)支付平臺。若資金結(jié)算失敗,支付平臺通過觸發(fā)定時任務(wù),向支付寶再次發(fā)起結(jié)算請求;若多次結(jié)算失敗,支付平臺會發(fā)出預(yù)警,通知業(yè)務(wù)人員和技術(shù)支持人員與支付寶方協(xié)同分析失敗原因,完成資金結(jié)算處理。
(1)異常記錄生成:旅客進出站時,若發(fā)生單邊的乘車記錄異常,系統(tǒng)會生成異常記錄,并引導(dǎo)旅客進行相應(yīng)的異常處理。
(2)進站異常處理:旅客刷碼進站異常時,車站窗口操作員查詢旅客乘車信息,詢問旅客上次乘車出站信息,系統(tǒng)完成進出站記錄匹配,生成客票存根,旅客完成支付即可正常刷碼進站。
(3)出站異常處理:旅客刷碼出站異常時,窗口操作員查詢旅客乘車信息,詢問旅客乘車進站信息,系統(tǒng)完成進出站記錄匹配,生成客票存根,旅客完成支付即可正常出站。
(4)小程序異常處理:旅客打開小程序乘車碼功能時,系統(tǒng)判斷是否有單邊的乘車記錄,若有則提醒旅客先進行單邊交易補登處理。具體補登規(guī)則為:根據(jù)旅客進站或出站記錄的車次、車站信息,按照當前列車最早乘車站或者最遠乘車站完成交易記錄匹配。旅客確認乘車記錄信息無誤后,系統(tǒng)生成客票存根并完成扣款,旅客乘車碼功能即可恢復(fù)正常使用。
(5)后臺異常處理:在旅客產(chǎn)生單邊交易的T+1 日,系統(tǒng)會以短信形式或向旅客12306 賬戶推送單邊交易異常信息,提醒旅客盡快登錄小程序或前往就近的鐵路車站窗口進行單邊交易異常處理。在旅客乘車的T+2、T+3、T+5、T+14、T+15 日,系統(tǒng)還會分別以相同方式提醒旅客盡快完成單邊交易處理,并告知旅客:系統(tǒng)會按照當前列車最早乘車站或者最遠乘車站的票價,在T+15 日完成自動補登和自動扣款處理。
城際鐵路車站環(huán)境復(fù)雜,因遮擋或受到干擾,移動網(wǎng)絡(luò)和無線網(wǎng)絡(luò)信號弱,且高峰時段旅客密集,無法保證業(yè)務(wù)受理終端在車站內(nèi)始終保持穩(wěn)定的網(wǎng)絡(luò)連接。為此,設(shè)計并實現(xiàn)了雙離線動態(tài)乘車碼生成與解析,以確保在節(jié)假日高峰時期、人流量大的車站及信號不佳的列車上,旅客不會因網(wǎng)絡(luò)連接不穩(wěn)定而影響乘車碼的使用,保證旅客獲得良好的出行乘車體驗。
雙離線動態(tài)乘車碼生成與解析采用國密SM2、SM4 及SM3 加密算法實現(xiàn),這些算法均由國家密碼管理局設(shè)計并公開,具有安全性和可靠性。其中,SM2 是一種橢圓曲線公鑰密碼算法,用于國家關(guān)鍵信息系統(tǒng)的數(shù)據(jù)加密、解密等操作;SM4 是一種對稱加密算法,廣泛應(yīng)用于網(wǎng)絡(luò)通信、文件存儲及移動支付等各種需要數(shù)據(jù)加密的場景;SM3 算法主要用于數(shù)字簽名及驗證、消息認證碼生成及驗證等?;谶@些加密算法,系統(tǒng)在線開通旅客乘車碼時,自動完成個人密鑰在小程序端的同步緩存,以及公鑰在閘機等多種終端的同步緩存,能夠離線對旅客乘車碼進行動態(tài)加密更新及解析,使乘車碼具有防偽造、防盜用、防抵賴、防篡改的特點。圖4 為雙離線動態(tài)乘車碼生成與解析時序圖。
圖4 雙離線動態(tài)乘車碼生成與解析時序圖
(1)同步密鑰:旅客通過小程序簽約開通乘車碼時,客票系統(tǒng)使用SM4 算法對旅客賬戶數(shù)據(jù)進行加密后,將個人密鑰信息同步至小程序端進行緩存,將公鑰同步至閘機等業(yè)務(wù)受理終端進行緩存,為乘車碼離線生成與解析提供可能。
(2)離線生成乘車碼及動態(tài)更新:在離線環(huán)境下,旅客使用小程序刷新乘車碼時,小程序使用SM3 算法對當前時間及緩存數(shù)據(jù)進行簽名處理,再使用SM2 算法對簽名原文和密文數(shù)據(jù)進行加密,生成乘車碼。
由于系統(tǒng)后臺服務(wù)端按照設(shè)置的乘車碼更新周期(如每隔2 min)自動更新旅客乘車碼,超出更新周期時長后,若旅客使用未刷新的乘車碼,終端校驗后會提示旅客乘車碼無效,此時旅客需通過手動刷新乘車碼,來再次離線生成有效的乘車碼。此外,系統(tǒng)還禁止了截屏操作,有效防止了乘車碼被盜用及偽造使用。
(3)離線解碼:在離線環(huán)境下,旅客進出站掃碼時,閘機、列車手持終端、車站窗口等業(yè)務(wù)受理終端使用SM3 及SM2 算法對國密公鑰與簽名結(jié)果進行核驗,完成乘車碼的解析。
旅客使用乘車碼出站時,系統(tǒng)實時完成旅客身份驗證及乘車訂單計價,并發(fā)起自動扣款,完成快捷支付。除了讓旅客體驗到快捷支付的順暢便利,更重要的是保證旅客資金安全,通過對支付交易進行層層加密與驗證,使支付交易防篡改、不可抵賴,保證旅客支付交易的安全性、穩(wěn)定性及完整性。
采用SHA1WithRSA 及RSA 算法實現(xiàn)對支付交易的加密及驗證。RSA 算法是當前應(yīng)用最廣泛的公鑰非對稱加密算法之一,廣泛應(yīng)用于數(shù)據(jù)加密、數(shù)字簽名等領(lǐng)域。通過數(shù)據(jù)的加密和簽名,能夠防范由密文反推簽名私鑰的風(fēng)險,保證數(shù)據(jù)不被篡改,提高數(shù)據(jù)的安全性和完整性。
客票系統(tǒng)與支付平臺之間通過業(yè)務(wù)報文傳遞支付交易數(shù)據(jù),系統(tǒng)與支付寶之間通過銀行報文傳遞支付交易數(shù)據(jù)。業(yè)務(wù)報文及銀行報文均使用私鑰進行簽名、加密,使用公鑰進行解密、驗簽。支付平臺與客票系統(tǒng)分別持有各自私鑰及對方公鑰,支付平臺與支付寶分別持有各自私鑰及對方公鑰,支付平臺私鑰以“業(yè)務(wù)私鑰”和“銀行私鑰”進行區(qū)分。支付交易數(shù)據(jù)以報文形式經(jīng)過多次私鑰簽名、加密及公鑰解密、驗簽完成流轉(zhuǎn)。支付交易完整的加密與驗證流程如圖5 所示。
圖5 支付交易加密與驗證流程示意
(1)客票系統(tǒng)加密業(yè)務(wù)報文:客票系統(tǒng)使用私鑰對業(yè)務(wù)報文進行簽名,并對簽名后的明文和密文進行加密。
(2)支付平臺驗證業(yè)務(wù)報文:支付平臺使用客票系統(tǒng)公鑰對業(yè)務(wù)報文進行解密,再對解密后的明文和密文進行簽名驗證。
(3)支付平臺加密銀行報文:支付平臺使用業(yè)務(wù)私鑰對銀行報文進行簽名,并對簽名后的明文和密文進行加密。
(4)支付寶驗證銀行報文:支付寶使用支付平臺公鑰對銀行報文進行解密,再對解密后的明文和密文進行簽名驗證。
(5)支付寶加密銀行報文:支付寶使用私鑰對銀行報文進行簽名、加密。
(6)支付平臺驗證銀行報文:支付平臺使用支付寶公鑰對銀行報文進行解密、驗簽。
(7)支付平臺加密業(yè)務(wù)報文:支付平臺使用銀行私鑰對業(yè)務(wù)報文進行簽名、加密。
(8)客票系統(tǒng)驗證業(yè)務(wù)報文:客票系統(tǒng)使用支付平臺公鑰對業(yè)務(wù)報文進行解密、驗簽。
旅客掃碼乘車后,系統(tǒng)自動扣款或以支付寶代扣方式完成付款。支付交易完成后,系統(tǒng)會按照鐵路運輸收入管理規(guī)定相關(guān)要求[10],完成交易對賬及差異處理,確保運輸收入正確、及時、完整和安全。交易對賬結(jié)果的準確性直接關(guān)乎國鐵集團運輸收入,交易對賬后及時采取合理的措施進行差異處理,直接影響旅客乘車體驗及國鐵集團客運服務(wù)水平。
借鑒鐵路電子支付平臺多年的交易對賬和差異處理業(yè)務(wù)經(jīng)驗,結(jié)合城際鐵路乘車碼的業(yè)務(wù)特點,建立對賬及差異處理業(yè)務(wù)模型,如圖6 所示。
圖6 交易對賬及差異處理業(yè)務(wù)模型示意
系統(tǒng)交易對賬發(fā)生在業(yè)務(wù)系統(tǒng)(客票系統(tǒng))、支付平臺和支付機構(gòu)(支付寶)三方之間,由支付平臺分別與業(yè)務(wù)系統(tǒng)進行業(yè)務(wù)對賬、與支付機構(gòu)進行銀行對賬。
業(yè)務(wù)對賬完成業(yè)務(wù)系統(tǒng)與支付平臺之間交易數(shù)據(jù)差異的比對核查,銀行對賬完成支付平臺與銀行之間交易數(shù)據(jù)差異的比對核查。對于復(fù)雜因素導(dǎo)致的重復(fù)支付等需退款的交易差異,系統(tǒng)審核通過后由銀行進行退款,審核不通過的進行標記;對于無需退款的待處理交易差異,若存在資金差異則由銀行補款,無資金差異則進行標記。
基于該業(yè)務(wù)模型實現(xiàn)的三方對賬及差異處理,能夠?qū)⑵薄①~、款分離,保證了運輸收入資金結(jié)算的完整性。
城際鐵路智能乘車碼系統(tǒng)面向城際鐵路運營實際需求,基于雙離線動態(tài)乘車碼生成與解析技術(shù)及智能識別技術(shù),實現(xiàn)旅客掃碼進出站、先乘車后支付的創(chuàng)新業(yè)務(wù)模式。該系統(tǒng)提供了周全、細致的異常處理,使旅客掃碼乘車時的異常得到及時、穩(wěn)妥處置,為旅客出行帶來高效便捷的乘車體驗,極大地提升了城際鐵路客運服務(wù)水平和旅客出行效率。此外,該系統(tǒng)通過支付交易多重加密與驗證及完善的交易對賬及差異處理,既保證了旅客支付的安全性和完整性,也確保了國鐵集團運輸收入準確無誤。
目前,城際鐵路智能乘車碼系統(tǒng)的功能已全部實現(xiàn),并在珠三角穗深城際、廣佛肇城際、莞惠城際等多條城際鐵路完成應(yīng)用試點與推廣,取得良好的應(yīng)用效果。截至2023 年底,已在4 條城際鐵路共計54 個車站開通乘車碼業(yè)務(wù),開通乘車碼的 旅客累計250 多萬人,完成運輸收入進款3000 萬元,掃碼乘車旅客發(fā)送量占比達 23.3%。
鐵路乘車碼業(yè)務(wù)將繼續(xù)在廣州局進行更大范圍的推廣,并逐步輻射到國鐵集團其它鐵路局。同時,鐵路乘車碼業(yè)務(wù)還在北京地鐵取得的良好應(yīng)用效果,未來可拓展到更多路外場景,為推進軌道交通多網(wǎng)融合發(fā)揮積極作用。