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签名解决本系统的安全性问题。

你可能感兴趣的:(java,设计模式,金融,网络应用,三星)