曾陽++林冠峰
摘 要: 隨著移動互聯(lián)網(wǎng)的發(fā)展,傳統(tǒng)的收銀POS機已經(jīng)漸漸不能滿足線下商戶收單需求。商戶通過移動互聯(lián)網(wǎng)進(jìn)行營銷,團(tuán)購,優(yōu)惠券,會員卡和受理二維碼支付等需求,越來越多的商戶需要銀行提供智能POS服務(wù)。本文主要講述了一種銀行基于安卓系統(tǒng)的通用的智能POS的設(shè)計方案。該方案能幫助銀行收款渠道屏蔽POS廠商系統(tǒng)的差異,讓銀行快速上線智能POS應(yīng)用,并且向服務(wù)商戶提供簡易接入和使用。
關(guān)鍵詞:線下收單 支付結(jié)算 智能POS 二維碼支付
The design and implementation of Android smart POS for bank
Zeng Yang, Lin Guan-feng
( Info Tech Department, China Minsheng Bank, Beijing 101300, China;)
Abstract:With the development of the mobile Internet, the traditional POS has been gradually unable to meet the demand of the merchant. With the development of coupons, membership cards, marketing and the payment of two-dimensional code, more and more businesses require smart POS services. This paper mainly describes the design of a bank based on the intelligent POS system of Android. With shielding the POS vendor system differences, the bank can quickly ship the smart POS applications and provide service for businesses.
Key words:Offline payment; payment and settlement; Smart Pos; two-dimensional code payment
中圖分類號:TP39 文獻(xiàn)標(biāo)識碼:A 文章編號:1003-9082(2016)10-0014-02
一、概述
近年來,移動支付市場的快速發(fā)展強力推動了商戶端市場的升級發(fā)展[1]。商戶端線下收單大多都以傳統(tǒng)POS作為載體,而目前市場上開始流行新一代智能POS以支持多樣化的收單模式,它在傳統(tǒng)POS基礎(chǔ)上進(jìn)行了功能升級,不僅支持對接多種移動支付的收款方式,還提供卡券營銷、訂單處理、點單排隊、數(shù)據(jù)平臺等多種店鋪消費服務(wù)。一些比較有名的智能POS廠商,從概念到產(chǎn)品,從研發(fā)到推廣,都極具互聯(lián)網(wǎng)色彩,例如最早研發(fā)和上市的掌貝智能POS和拉卡拉智能POS等[2]。他們利用首發(fā)優(yōu)勢、功能優(yōu)勢、資源優(yōu)勢,成為了移動支付商戶端市場迅猛崛起和發(fā)展的力量。
在支付結(jié)算工具發(fā)展的歷程當(dāng)中,從傳統(tǒng)的線下POS收單系統(tǒng)到近年來流行的移動支付收單系統(tǒng),銀行為適應(yīng)相應(yīng)的新興支付商業(yè)模式,開始了新一代智能POS應(yīng)用的探索和系統(tǒng)建設(shè)。本文提出的銀行安卓智能POS系統(tǒng)通用設(shè)計,旨在從系統(tǒng)設(shè)計層面解決各廠商底層應(yīng)用的差異,解決移動收單安全問題,為銀行商戶提供二次開發(fā)接入接口,供其完成自身場景化應(yīng)用的開發(fā)和適配。
二、銀行安卓智能POS系統(tǒng)設(shè)計
銀行在做智能POS時通常會與傳統(tǒng)POS轉(zhuǎn)型廠商(以下簡稱“廠商”)合作,這些廠商在硬件上極具實力,但欠缺互聯(lián)網(wǎng)基因,在軟件系統(tǒng)的開發(fā)上也實力不足。傳統(tǒng)POS轉(zhuǎn)型比較典型廠商,例如新大陸,它與拉卡拉、快錢等第三方支付公司合作,利用自身在機具制造上的實力,以及第三方支付公司在系統(tǒng)開發(fā)上的優(yōu)勢,分別推出智能POS產(chǎn)品。
市面上智能POS大多基于安卓系統(tǒng),各廠商在安卓系統(tǒng)基礎(chǔ)上,對智能POS進(jìn)行了自定義,包括系統(tǒng)安全,操作系統(tǒng)應(yīng)用管理,應(yīng)用商店,支付,打印,掃碼等功能。對于銀行而言,如何在各廠商的安卓系統(tǒng)基礎(chǔ)上,定義一套統(tǒng)一的標(biāo)準(zhǔn)規(guī)范,為商戶提供無差異的服務(wù),成為了一個很重要的挑戰(zhàn)。一方面,銀行需要保證整個機具的受理環(huán)境安全,另一方面,設(shè)計又需要考慮廠商差異性,并且需要為接入商戶提供無差異的服務(wù)。本文所述的銀行安卓智能POS系統(tǒng)整體架構(gòu)如下:
安卓系統(tǒng)framework層封裝由硬件廠商完成,集成支付服務(wù),打印服務(wù),掃碼服務(wù)以及其他服務(wù),銀行通過標(biāo)準(zhǔn)協(xié)議的SDK與廠商服務(wù)通過安卓系統(tǒng)Binder機制進(jìn)行交互,各廠商只需將自身服務(wù)按照銀行要求,對外暴露Binder調(diào)用接口,即可與銀行完成適配。
銀行統(tǒng)一SDK為商戶提供標(biāo)準(zhǔn)化訂單消費、查詢余額、對外付款等常用交易,屏蔽各廠商差異,組裝交易流程,并且提供與銀行后臺進(jìn)行交互的Binder接口供POS廠商調(diào)用,廠商組織8583報文,與SDK交互,完成通信,SDK相當(dāng)于銀行服務(wù)端在本地的代理。
商戶在接入時,只需關(guān)心如何與銀行統(tǒng)一SDK對接,無需關(guān)心其他交易細(xì)節(jié)。
另外,銀行會為智能POS單獨定制開機畫面,系統(tǒng)桌面,系統(tǒng)應(yīng)用商店,機具設(shè)置等相關(guān)功能,供商戶日常使用。
1.POS基礎(chǔ)功能封裝
針對智能POS,銀行需要POS廠商完成POS機本身一些關(guān)鍵業(yè)務(wù)邏輯,以滿足PCI以及其他認(rèn)證標(biāo)準(zhǔn),并向銀行提供標(biāo)準(zhǔn)的功能API。可將廠商需開發(fā)內(nèi)容劃分為以下幾類:
1.1刷卡相關(guān)流程。在POS上最重要的業(yè)務(wù)即是刷卡相關(guān)業(yè)務(wù),包括余額查詢,刷卡消費,對外付款等。刷卡流程中,廠商需保證刷卡過程中密碼輸入安全,報文組包和加密安全等。
1.2二維碼掃描。一般地,各廠商對二維碼掃描會采用不同的技術(shù)手段,有采用霍尼韋爾軟件實現(xiàn),也有采用硬件解碼芯片實現(xiàn),不同廠商的攝像頭分布也不一樣,所以對于二維碼掃描,廠商需按銀行要求實現(xiàn)標(biāo)準(zhǔn)化掃描接口供銀行SDK調(diào)用。
1.3 POS機打印。一般地,各廠商采用的打印技術(shù),打印標(biāo)準(zhǔn)以及打印機本身會有不同的技術(shù)實現(xiàn),所以銀行SDK需制定一套標(biāo)準(zhǔn)的接入實現(xiàn)。
1.4其他功能。還有其他涉及POS本身的功能,如系統(tǒng)安全,密鑰管理,廠商本身支持應(yīng)用安裝和卸載的控制等。
智能POS廠商完成標(biāo)準(zhǔn)化的功能封裝后,銀行支付SDK可以直接以標(biāo)準(zhǔn)協(xié)議與廠商對接,這樣,新進(jìn)入的廠商直接完成相應(yīng)功能后,銀行無需修改代碼即可完成與廠商對接。
2.銀行機具安全設(shè)計
智能POS安全主要涉及以下幾個方面:
首先,是對于安裝包的管理。一般來說,銀行智能POS是一個相對封閉的系統(tǒng),其上面安裝的應(yīng)用是需要嚴(yán)格受控的。在安裝時,需要校驗該應(yīng)用是否可以安裝。一般來說,智能POS會采用證書方式對應(yīng)用進(jìn)行簽名驗證[3],此種方式下,需要對應(yīng)用重新簽名和打包,這只適用于應(yīng)用專門為智能POS開發(fā)的情況,實際應(yīng)用場景中,商戶可能會自主安裝一些會員卡應(yīng)用,團(tuán)購應(yīng)用等進(jìn)行使用,故而我們設(shè)計的安裝包管理策略既要考慮支持一般應(yīng)用,也要考慮支持對包安全的校驗。為此我們設(shè)計了如圖3所示的安全策略校驗方案,該方案將安全策略放在云端,通過對應(yīng)用包的一些特征哈希值校驗,來保證應(yīng)用包能正常升級和安裝,并且攔截有威脅應(yīng)用的安裝。
其次,是對于數(shù)據(jù)安全層面的控制,POS刷卡相關(guān)交易過程中的報文都采用交易全報文加密的形式,通過銀行統(tǒng)一SDK上送到銀行后臺服務(wù)器,保證用戶的卡片信息,密碼信息以及交易流程信息對應(yīng)用以及外部是完全加密的。如圖4所示,廠商全報文加密的數(shù)據(jù)通過SDK數(shù)據(jù)交換服務(wù)發(fā)送到銀行后臺。
另外,傳統(tǒng)收單風(fēng)險在智能POS上同樣存在,例如,對于移機監(jiān)控,智能POS可以采用GPS定位的方式來防止移機,另外,由于智能POS上采集的數(shù)據(jù)更加豐富,可以采用更豐富的大數(shù)據(jù)手段來監(jiān)控交易風(fēng)險,更好地保障商戶資金安全。
3.商戶接入模型設(shè)計
銀行與商戶對接采用SDK的方式對接,商戶通過在自己APP中集成銀行SDK,完成交易。銀行需為商戶發(fā)放接入機構(gòu)證書,商戶在交易時用自己私鑰簽名,銀行公鑰加密,通過APP將密文調(diào)用銀行SDK,銀行在完成交易后,會異步通知商戶支付結(jié)果,商戶也可以調(diào)用銀行查詢交易進(jìn)行查詢。
商戶訂單信息在傳輸過程中,需要保證該訂單信息不被篡改不被中間截獲,保證訂單信息是商戶真實意愿表達(dá)。為了滿足以上業(yè)務(wù)數(shù)據(jù)安全需求,進(jìn)出雙方應(yīng)用服務(wù)器的業(yè)務(wù)數(shù)據(jù)為以下形式:envelop(d(M,K_prt),certs)
其中,envelop表示使用數(shù)字信封加密,d表示使用數(shù)字簽名,M為報文明文,Kprt為發(fā)送方私鑰,certs為(一個或者多個)接收方的公鑰證書。
A、B兩方進(jìn)行通信描述如下:
3.1 A向B發(fā)送數(shù)據(jù)時:A使用己方私鑰對明文M進(jìn)行簽名(非分離式簽名,簽名結(jié)果中包含明文信息);然后使用接收方公鑰證書進(jìn)行數(shù)字信封加密;A將加密后的數(shù)據(jù)發(fā)送給B。
3.2 B收到A的數(shù)據(jù)時:B使用己方私鑰打開數(shù)字信封;對數(shù)字簽名d驗簽。如果驗簽通過則繼續(xù)驗證發(fā)送方證書有效性(簽名有效、在有效期內(nèi)、簽名證書和本地的對方證書內(nèi)容一致);如果發(fā)送方證書有效性驗證通過則獲取消息明文M,繼續(xù)業(yè)務(wù)邏輯處理。如果任一驗證失敗,此次通信不可信,記錄日志,通知對方。
通過該方式,商戶可以快速將自己的原有ERP系統(tǒng)與銀行智能POS快速對接,完成交易和對賬。
三、結(jié)束語
為支持銀行新一代智能POS業(yè)務(wù),在滿足銀行安全性要求的情況下能快速支持多家POS廠商,讓銀行能快速與合作商戶對接,本文設(shè)計并實現(xiàn)了一種通用的銀行安卓智能POS模型,并基于該模型設(shè)計了銀行安卓智能POS。通過對整體系統(tǒng)架構(gòu),安全,交互以及與商戶對接的設(shè)計,建立了一套適用于銀行體系的安卓智能POS模型。
在未來的研究工作中,我們將會跟進(jìn)新興支付商業(yè)模式,致力于用戶體驗以及支付安全,提升銀行在支付領(lǐng)域的競爭力,為更多細(xì)分領(lǐng)域的支付結(jié)算商戶提供更優(yōu)質(zhì)的服務(wù)。
參考文獻(xiàn)
[1]佚名. 盤點2015互聯(lián)網(wǎng)智能POS市場的風(fēng)云變幻[Z]. 比特網(wǎng): 比特網(wǎng),2016.
[2]黃建軍.智能POS驅(qū)動商戶收單業(yè)務(wù)變革[J].中國信用卡, 2016(4):23-26.
[3]蘇金田, 張貴潭, 張登峰,等. 一種對自助智能POS支付終端安全監(jiān)控方法:, CN103473865A[P]. 2013.
[4]李巖,段明珠.旺POS,做POS領(lǐng)域的iPhone[J].中國企業(yè)家,2016(1):13-13.
[5]佚名.聯(lián)迪商用智能PDA-POS助力智慧停車[J]. 金融科技時代, 2016(2):97-97.
[6]姚偉,趙曉丹. 透析中國POS收單市場的發(fā)展[J]. 金融電子化, 2007(9):44-46.
[7]董宏勛,肖平, 肖凱提,等. Pos安全認(rèn)證裝置、系統(tǒng)及pos裝置安全認(rèn)證方法: CN, CN 103295341 A[P]. 2013.
[8]洪琳,李展. 數(shù)字簽名,數(shù)字信封和數(shù)字證書[J]. 計算機應(yīng)用, 2000, 20(02):41-42.
作者簡介:曾陽,男,北京市,碩士學(xué)位,現(xiàn)為中國民生銀行信息科技部軟件工程師。主要研究方向:移動支付、移動互聯(lián)收單。
林冠峰,男,北京市,碩士學(xué)位,現(xiàn)為中國民生銀行信息科技部項目經(jīng)理。主要研究方向:互聯(lián)網(wǎng)支付、移動支付、銀行支付結(jié)算應(yīng)用。