andy学java系列
J2ME
的移动支付系统的设计与实现 ----三星SDK支付API介绍
移动支付是移动电子商务中的最重要的部分之一。安全性、私密性、易用性是移动支付的最重要的几个问题。目前有许多不同种类的技术能够实现移动支付,其中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系列之J2ME的移动支付系统的设计与实现相关推荐

  1. andy学java系列之J2ME的移动支付系统的设计与实现

    andy学java系列 J2ME的移动支付系统的设计与实现 ----三星SDK支付API介绍 移动支付是移动电子商务中的最重要的部分之一.安全性.私密性.易用性是移动支付的最重要的几个问题.目前有许多 ...

  2. J2ME的移动支付系统的客户端的实现

    J2ME的移动支付系统的客户端的实现 整个J2ME客户端的逻辑架构是由若干个功能模块组成的,这些功能模块覆盖了网络通信.用户界面.安全等各个方面的职能,并通过模块间的通信共同实现了移动支付系统客户端的 ...

  3. Java开源生鲜电商平台-支付模块的设计与架构(源码可下载

    Java开源生鲜电商平台-支付模块的设计与架构(源码可下载) Java开源生鲜电商平台-支付模块的设计与架构(源码可下载) 开源生鲜电商平台支付目前支持支付宝与微信.针对的是APP端(android ...

  4. 记一次支付系统的设计体验

    0.写在前面的话 支付系统是一个老生常谈的话题,我也相信每个公司开发的支付系统不尽相同,因为业务形态并不太一样. 在此,我并不想讲一个大而全的支付系统,个人也没有能力去阐述. 在我看来,一个支付系统应 ...

  5. 支付系统整体设计:整体架构设计以及注意要点(三)

    一般来说,银行会提供两种支付途径:无跳转的快捷支付接口和带跳转的网银接口.前者在绑卡,支付的时候,不需要跳到银行页面上去处理,后者则需要在银行的网银页面上完成.显然前者对用户来说体验要好多了,用户流程 ...

  6. java计算机毕业设计作业自动评阅系统的设计和开发源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计作业自动评阅系统的设计和开发源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计作业自动评阅系统的设计和开发源程序+mysql+系统+lw文档+远程调试 本源码技 ...

  7. java 移动支付_如何在java中使用J2ME实现移动支付

    移动支付解决方案使用了 MIDP/SIM API.SSL 和 java Card 平台,Java Card 平台提供了比通常情况更高的安全性和网络效率,并且还为事务本身提供经济上可行的适当的安全性. ...

  8. 一款基于java的超级棒的开源支付系统(用来毕设也不错),国内首款开源的互联网支付系统

    最近年初刚开始了,小编想着应该会有很多公司开始冲一波今年的业绩,既然是冲业绩,就离不开我们的支付系统,所以小编就去网上给大家找到了一款超级棒的开源支付系统!帮助大家从头到尾了解清楚这其中的逻辑! 所以 ...

  9. java对账系统设计_对账系统产品设计(一)

    我是做技术的,为什么会要写产品设计呢?就像一句俗话"久病成医",当你负责一个系统足够久了,可能你就懂的比较多了.我想把自己遇见的听见的做一个系列,算是对自己过去工作的总结. 本文的 ...

最新文章

  1. 力扣(LeetCode)刷题,简单题(第11期)
  2. javascript库函数大全
  3. python httplib_如何用Python做个英语翻译小字典
  4. C++ STL的查找算法
  5. JAVA API----Date类
  6. 冻库正常低压力是多少_弹涂鱼上市卖不动,还有8万斤要进冻库,市场低迷,不值钱了...
  7. C# 自定义类型通过实现IFormattable接口,来输出指定的格式和语言文化的字符串(例:DateTime)...
  8. 运维必读:避免故障、拒绝背锅的六大原则!
  9. quartz常见表达式
  10. GridView日期列使用DataFormatString格式化技巧
  11. ORB-SLAM(一)简介
  12. Linux stty 指令设置串口参数
  13. linux终端查找隐藏文件,如何在Linux服务器中查看或隐藏文件?
  14. 实战录 | 云端卫士之DPDK技术简介
  15. 计算机网络检查方式,一种计算机网络环路检测方法与流程
  16. mysql如何恢复单表_MySQL如何恢复单库或单表,以及可能遇到的坑
  17. C++学习记录8:定义一个分数类Score和学生类Student
  18. 低密洋房+超高得房率+三面宽“眼镜”户型=终极居住体 滙德里
  19. 基于Python回归模型的自相关性分析
  20. Android音量控制

热门文章

  1. Lyndon的量化修炼之路——均线差与MACD联动策略(一)
  2. JOOQ 踩坑和评价
  3. Hexo+Kaze+Gitee Pages 搭建静态博客网站
  4. 【博弈论】纳什定理及其证明
  5. JVM内存模型以及JVM内存模型图
  6. 内核网络协议栈offload功能盘点
  7. openpyxl 不支持xls文件,仅支持xlsx文件,xls用xlrd/xlwt
  8. 影响人类!写入历史!疫情年最值得铭记的6个大事件
  9. img显示保存在服务器中的图片,img显示服务器图片不显示
  10. java集成友盟实现推送