andy學java系列之J2ME的移動支付系統的設計與實現

移動支付是移動電子商務中的最重要的部分之一。安全性、私密性、易用性是移動支付的最重要的幾個問題。目前有許多不同種類的技術能夠實現移動支付,其中J2ME憑藉其多種顯著的優勢成爲了佼佼者。移動支付系統也有多種體系架構,其中以第三方支付平臺爲中心的架構比較靈活、具有很強的可擴展性。本文討論一個基於J2ME的以第三方支付平臺爲中心的移動支付系統的特點和優越性,並給出這個系統詳細的設計與實現過程。支付API已設計用於Java ME應用程序,可請求併發起支付交易。支付API非常有用,因爲其可允許用戶進行諸如購買牆紙、鈴聲等支付交易。本文檔也說明了如何使用三星SDK模擬支付API
當前移動付費已經相當普及,並受到來自銀行、零售業等移動行業以外企業的關注。移動支付是指交易雙方爲通過手機、PDA、移動PC等移動設備進行商業交易。
移動支付根據涉及的金額的不同,一般可以分爲以下兩類:
1)微支付(小額支付):微支付是指交易額少於10元,通常是指購買移動內容業務。
2)宏支付:宏支付是指交易金額較大的支付行爲。
對於宏支付方式來說,通過可靠的金融機構進行交易鑑權是非常必要的;而對於微支付來說,使用移動網絡本身的SIM卡鑑權機制就能夠達到較高的安全性了。
與傳統支付方式的比較,移動支付的最大特點是交易靈活,方便快捷。但由於安全性和易用性問題未得到很好的解決,目前國內的移動支付主要是小額支付爲主。目前能夠實現移動支付的技術從理論上來說有很多,如SMS、WAP、J2ME等增值服務技術均能夠滿足移動支付業務的基本需要。其中J2ME憑藉其可移植性、強大的JDK支持等等顯著的優勢成爲了未來移動支付技術的首選。
系統的分析與設計
1移動支付系統的基本組成部分
移動支付系統一般可以分爲以下基本組成部分:
1)移動運營商:移動運營商的主要任務是爲移動支付提供通信渠道。
2)金融機構:一般是銀行,爲用戶、商家之間的交易提供了不使用現金的渠道。
3)移動支付平臺提供商:第三方移動支付平臺提供商是運營商和金融機構之間的銜接環節。
4)用戶商家。
2以第三方移動支付平臺爲中心的設計模式
目前,移動支付系統的設計模式主要有以下三種:
1)以移動運營商爲中心的設計模式;
2)以銀行爲中心的設計模式;
3)以第三方移動支付平臺提供商爲中心的設計模式。
其中,以第三方移動支付平臺提供商爲中心的設計模式如圖1所示,它具有簡單、便捷、跨領域操作等另外兩種設計模式所不具備優點。
3移動支付系統運作流程
以第三方移動支付平臺提供商爲中心的移動支付系統的運作流程如下:
1)用戶發交易短信到移動支付平臺提供商的服務號;
2)支付平臺收到短信後進行服務識別,並向用戶回覆確認消息;
3)用戶收到確認短信後回覆,確認此次交易;
4)支付平臺收到確認短信後,根據商品編號、價格以及相關注冊信息等查詢到用戶的銀行卡號碼;
5)支付平臺嘗試向銀行發出扣費請求,如果扣費成功則轉入6),否則下發短信給用戶提示交易失敗;
6)扣費成功,向用戶發送確認短信,同時告知相關移動支付系統交易成功,交易結束。
4系統實現的重點
1)安全性問題
由於無線網絡本身幾乎不提供安全保護措施,因此移動支付過程中可能受到多種的攻擊行爲。要實現安全的無線交易,必須要解決以下幾個問題:
•鑑權(Authentication):通信雙方必須標識其本身,沒有經過鑑權的通信方將不能夠進行下一步操作。
•數據完整性(Integrity):確保交易他方或非法入侵者不能對交易的內容進行修改,從而保證通信中的接收方收到的是原文。
•數據機密性(Confidentiality):防止合法或隱私數據爲非法用戶所獲得,從而確保在交易過程中只有交易的雙方纔能唯一知道交易的內容。
•不可否認性(Non-repudiation):確保交易行爲正確性,交易雙方均不能否認交易行爲產生的事實。
2)開發移動終端設備的應用程序的限制
開發移動終端設備的應用程序要受到多種條件的限制如:芯片處理能力弱,存儲空間小,堆內存小,屏幕尺寸有限,按鍵少,網絡帶寬不足等。
5安全性問題解決方法
要保護通信安全,實現安全的無線交易,必須要解決通信過程中的鑑權,數據完整性,數據機密性和不可否認性這幾個問題。而數據加密和數字簽名兩種安全措施的利器正好可以達到這個目的。
數據加密的方式多種多樣,如使用已經很成熟的SSL/TLS和HTTPS對網絡連接進行加密,從而保護數據。此外其加密算法也同樣有很多的選擇,常用的有Triple DES、RSA等等算法。系統採用Triple DES來加密傳輸的機密數據,RSA算法來加密Triple DES的密匙。
 字簽名解決以下問題:
鑑權:由於私匙與公匙是一一對應的,並且私匙只有用戶才能夠持有,因此實際上私匙成爲了用戶的身份的唯一標誌,就像一般的用戶名/密碼一樣可以在鑑權過程中識別用戶身份。
數據完整性:數據完整性主要是保證內容不被篡改。在數字簽名的流程中,接收方在收到簽名及其原始消息後,會按照消息原文再生成一次摘要,然後與用公匙解密的摘要進行對比驗證。因此即使入侵者修改了原文,也會因爲無法通過對比驗證而達不到破壞的目的。
不可否認性:因爲特定的簽名信息只能由某個用戶通過私匙進行簽名,而不能由任何其他人實現,因此用戶無法否認經過自己簽名的信息。
這裏選擇XML作爲客戶端與服務器通信的數據載體。使用XML不但可以以清晰的邏輯表示複雜的嵌套的數據結構,而且因爲XML是當今互聯網的主流的通信接口的標準,有很好的兼容性與擴展性。所以我們將使用XML加密與XML簽名解決本系統的安全性問題。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章