移动支付是移动电子商务的重要组成部分之一,安全性、隐私性和易用性是移动支付中最重要的问题。实现移动支付的技术有很多种,其中J2ME凭借其诸多显著的优势成为其中的佼佼者。移动支付系统的架构也有很多种,其中以第三方支付平台为中心的架构更加灵活,扩展性强。本文讨论了基于J2ME的以第三方支付平台为中心的移动支付系统的特点和优势,并给出了该系统的详细设计和实现过程。设计了支付API,供Java ME应用程序请求和发起支付交易。支付API非常有用,因为它允许用户进行购买壁纸、铃声等支付交易。本文档还介绍了如何使用 SDK模拟支付API
移动支付目前已相当流行,并受到银行、零售商等移动行业外企业的关注。移动支付是指交易双方使用手机、PDA、移动PC等移动设备进行的商业交易。
移动支付根据金额大小一般可分为以下两类:
1)微支付(小额支付):微支付是指交易金额在10元以下的,通常指购买移动内容服务。
2)大支付:大支付是指交易金额较大的支付行为。
对于大额支付来说,需要通过可靠的金融机构对交易进行身份验证;对于小额支付,利用移动网络本身的SIM卡身份验证机制可以实现更高的安全性。
与传统支付方式相比,移动支付最大的特点就是灵活、方便、快捷。但由于安全性和易用性问题一直没有得到很好的解决,我国的移动支付主要还是以小额支付为主。从理论上讲,可以实现移动支付的技术有很多,如短信、WAP、J2ME等增值业务技术,这些技术都可以满足移动支付业务的基本需求。其中,J2ME凭借可移植性、强大的JDK支持等显著优势,成为了未来移动支付技术的首选。
系统分析与设计
1移动支付系统基本组成部分
移动支付系统一般可以分为以下几个基本组成部分:
1)移动运营商:移动运营商的主要任务是为移动支付提供通信渠道。
2)金融机构:通常是银行,为用户和商家之间的交易提供无现金渠道。
3)移动支付平台商:第三方移动支付平台商是运营商与金融机构之间的纽带。
4)用户商家。
2.以第三方移动支付平台为中心的设计模式
目前,移动支付系统的设计模式主要有三种:
1)以移动运营商为中心的设计模式;
2)以银行为中心的设计模式;
3)以第三方移动支付平台商为中心的设计模式。
其中以第三方移动支付平台提供商为中心的设计模式如图1所示,其具有另外两种设计模式所不具备的简单、便捷、可跨域操作等优点。
3.移动支付系统运行流程
以第三方移动支付平台商为中心的移动支付体系的运作流程如下:
1)用户向移动支付平台提供商的服务号码发送交易短信;

2)支付平台收到短信后,识别该服务,并向用户发送确认信息;
3)用户收到确认短信后,回复确认交易;
4)支付平台收到确认短信后,根据商品编号、价格及相关注册信息查询用户的银行卡号;
5)支付平台尝试向银行发送扣款请求,若扣款成功,则将款项转至6)否则,向用户发送短信提示交易失败。
6)扣款成功则向用户发送确认短信,并告知相关移动支付系统本次扣款成功,交易完成。
4 系统实施要点
1)安全问题
由于无线网络本身几乎没有任何安全保护措施,移动支付过程可能遭受各种攻击。要实现安全的无线交易,必须解决以下问题:
• 认证():通信双方必须确认自己的身份。未经认证的通信方将无法继续下一步。
•数据完整性():确保交易的另一方或者非法入侵者不能修改交易的内容,从而确保通信中的接收者收到的是原始文本。
•数据保密性:防止合法或私人数据被非法用户获取,从而保证交易过程中只有交易双方知道交易内容。
• 不可否认性:确保交易的正确性,交易双方均不能否认交易发生的事实。
2)移动设备应用程序开发限制
针对移动终端设备开发应用程序受到各种限制,例如:芯片处理能力弱、存储空间小、堆内存小、屏幕尺寸有限、按钮少、网络带宽不足等等。
5 安全问题解决方案
为了保障通信安全,实现安全的无线交易,需要解决通信过程中的身份验证、数据完整性、数据机密性和不可否认性等问题,而数据加密和数字签名是实现这一目标的两种强有力的安全措施。
加密数据的方式有很多种,比如利用成熟的SSL/TLS、加密网络连接等来保护数据。另外加密算法的选择也有很多,常用的算法有DES、RSA等。系统采用DES对传输的机密数据进行加密,采用RSA算法对DES密钥进行加密。
Word签名解决了以下问题:
身份验证:由于私钥与公钥一一对应,且只有用户才能持有私钥,所以私钥实际上就成为了用户身份的唯一象征,就像一般的用户名/密码一样,在身份验证过程中可以用来识别用户。
数据完整性:数据完整性主要是为了保证内容不被篡改。在数字签名过程中,接收方在收到签名和原始消息后,会根据原始消息重新生成一个摘要,然后与用公钥解密后的摘要进行比对验证。因此,即使入侵者修改了原文,也会因无法通过比对验证而无法达到破坏的目的。
不可否认性:由于特定的签名信息只能由某个用户使用私钥进行签名,其他任何人都无法实现,因此用户无法否认自己签名的信息。
这里我们选择XML作为客户端与服务器通信的数据载体,XML不仅可以表达复杂嵌套的数据结构,逻辑清晰,而且由于XML是当今互联网的主流通信接口标准,具有良好的兼容性和可扩展性,因此我们将采用XML加密和XML签名来解决本系统的安全问题。