劉孝天
摘要 近年來,智能手機技術獲得了飛躍式的發展,功能齊全,攜帶便捷且價格親民的智能移動手機在大眾間獲得了進一步的普及,移動網絡也完成了從3G到4G的改革,開始向5G時代邁進。大多數原先只能從PC電腦終端使用的軟件程序都陸續推出了手機應用版本。手機移動銀行由于其便捷迅速的優勢開始受到銀行業廣泛的關注,并針對手機銀行應用進行了一系列的開發與推廣。本文以農商銀行為例,根據當前銀行的業務種類和處理需求,利用主流開發軟件進行客戶端手機銀行的開發,用JAVA語言對客戶端的框架結構和模塊功能部署方式進行簡要的介紹。
【關鍵詞】農商行 手機銀行 模塊功能
1 手機銀行簡介
網絡技術的進步使得WAP手機銀行開始出現在人們的視線中。隨著手機上網功能的日漸完善,以手機上網功能為基礎的銀行手機操作系統也日趨成熟。二十一世紀初期,西方發達國家已經認識到了網絡時代下WAP手機銀行所擁有的廣泛的發展前景,以意大利Toscana公司為首的多家世界銀行機構都加入了WAP手機銀行建設的大軍。我國的WAP手機銀行起步相對較晚,但是發展極為迅速,2005年左右,國內的各大國有商業銀行已經基本完成了WAP版手機銀行的建設與投用。
客戶端手機銀行擁有以下幾種主要特點:
(1)擁有極高的安全性,而且能夠為客戶提供舒適、便捷、高效的業務交易體驗。客戶端手機銀行充分的利用了智能手機在業務處理中所具備的各項優勢,為用戶舒適的操作界面,使用方式較為便捷。
(2)手機銀行能夠為用戶提供全天候二十四小時無間斷的業務處理服務,與網絡客戶端所不同的是,手機客戶端具備良好的可移動性,用戶可以隨時隨地的接入客戶端完成各項銀行業務交易。
(3)客戶端手機銀行幾乎能夠實現全部的銀行金融業務,減輕了客戶在實體營業網點中排隊的壓力;也能夠在一定程度上分擔一部分實體網點的營業壓力,提高客戶的服務體驗與舒適度。
2 系統關鍵技術選擇
客戶端手機銀行的推廣與使用為銀行帶來的利潤十分明顯,雖然銀行客戶通過客戶端手機銀行獲得了良好的服務體驗,但是在使用過程中也產生了格式各樣的問題。
(1)手機銀行應用必須涵蓋大量復雜的銀行業務內容,如果采用傳統的原生技術開發模式,最終所形成的客戶端大小將超過100M,必將產生巨大的開發和維護成本。因此,我們必須尋找到一種新的框架結構以降低客戶端大小和整體開發成本。
(2)業務所需要實現的靈活性也較為復雜。銀行的業務體系不是一成不變的,因此在使用過程中需要不斷的對系統的功能進行修改和維護,同時需要根據銀行業務的變更不斷開發新的功能,功能的開發時效性強,開發周期不能太久。
(3)安全性的要求。對于銀行類客戶端而言,安全性可以看做是客戶端設計的重中之重,安全性的保護要從通訊層面、技術層面和業務層面三方面入手。在設計過程中應當有針對性的對當前手機應用領域中所存在的各項安全隱患和病毒攻擊手段進行防護。
3.1 原生應用
優勢:
(1)能夠有效展現出操作系統最優良的性能;
(2)客戶體驗好;
(3)擁有穩定的運行效率,而且可以突破來自互聯網的限制。
劣勢:
(1)需要經歷很長的開發周期,而且需要大量的資金投入;
(2)不同終端之間的配合與適應程度之間存在著一定的不完善的地方。
3.2 Web應用
優勢:
(1) Web開發方式較為簡單,開發人員可以迅速掌握開發的關鍵技術;
(2)能夠支持多種終端下的良好運行;
(3)可以根據用戶的需要對應用的性能進行實時調整,程序整體的開發周期較短。
劣勢:
(1)只能夠實現較為簡單的操作界面效果;
(2)在進行硬件功能的調用時存在一定的滯后性。
3.3 基于自定義標簽的客戶端
優勢:
(1)同時具備操作系統與設備硬件的雙重優勢;
(2)能夠為用戶提供良好的操作體驗;
(3)運行效率良好。
劣勢:
(1)開發周期較長,開發過程較為復雜;
(2)必須通過適配才能夠支持不同終端下的應用。
通過對比,可以發現,基于自定義標簽的客戶端應用既能夠實現原生應用客戶體驗良好,系統運行速率較快的優勢,又能夠兼容多種Web應用,因此最終決定采用基于自定義標簽的客戶端技術作為本系統的主要開發技術。
4 基本功能實現
手機銀行登錄的部分后臺代碼如下:
∥首次登陸用戶身份驗證
Login loginBean= null;
HttpSession session = requestgetSession(true);
try{
loginBean=(Login) sessiongetAttribute(”login”);
if(loginBean=null){
loginBean= new Login();
session.setAttribute(“login”, loginBean);
)
catch (Exception e){
loginBean= new Login();
session.setAttribute("login",loginBean);
String useF"root" ,password="mysql" ;
String url="j dbc:mysql://localhost:3 3 06/rest??characterEncoding=utf8 ";
Connection connection=DriverManager.getConnection(url,user,password);
sql = "select * from tl where name = ? andpassword = ?";
PreparedStatement query = connection.prepareStatement(sql);
query.setString(l, ".jdbc");
query.setString(2, "jdbc");
ResultSet rs = query.executeQuery();
final int MAX_DAY_FAILED=3,MAX_TOTAL_FAILED=9;
Date nowDateTime = new Date();
Date failDateTime = new Date()
int failedCount=0;
failedCount++;
if(fialedC ount==MAX_DAY_FAILED)
try{
UserBranchID=" 10010":
UserID=backend util:read tellercode(UserBranchID);
String MSG=“尊敬的客戶,您的手機銀行登陸密碼當日己連續輸錯3次,您的手機銀行己被臨時鎖定,次日將自動解鎖。”
bank_api_short_message(TranNo,MobileNo,MSG,UserBranchID,UserID);
)
catch(Exception e)
throw e:
if(fialedC ount==MAX_TOTAL_FAILED)
try{
UserBranchID=" 100101":
UserID=backend util:read tellercode(UserBranchID);
String MSG=”尊敬的客戶,您的手機銀行登陸密碼己連續輸錯9次,您的手機銀行已被鎖定,如需繼續使用請到我行網點辦理。”
bank_api_short_message(TranNo,MobileNo,MSG,UserBranchID,UserID);
}
catch(Exception e)
throw e:
參考文獻
[1]關東升.iOS開發指南[M].北京:電子工業出版社,2016.
[2] StephenG Kochan. Objective-C程序設計(第4版)[M].北京:電子工業出版社.2 015.
[3]Fredrik Olsson, Jeff LaMarche, JeffLaMarche, Jack Nutting, David Mark.精通iOS開發(第5版)[M].北京:人民郵電出版社,2016.