`
ljh2008
  • 浏览: 45890 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

项目集成第三方支付设计方案

阅读更多

现在越来越多的项目都要求集成第三方的支付平台,特别是在互联网项目中,下面简单说说项目中集成第三方支付平台的设计实现思路。
目前用得比较多的 第三方支付平台有支付宝、易宝、财付通、移动支付等,每种支付平台都提供了详细的支付接口文档及示例代码,要在自己的项目中实现集成第三方支付还是比较容 易的,但主要的问题在于,一个项目中一般都会集成多种支付方式,以方便用户的选择,那么,我们的项目中如何设计才能即保存业务层的稳定,又能方便地加入新 的 支付方式(开闭原则体现哦)。设计的思路就是抽象定不变的东西封装起来,变化的部分设计为接口单独封装,以达到灵活的扩展的目的。
对一些平台的支付流程进行研究总结后,我们发现,无论支付工具的接口怎么的不相同,但总的支付流程几乎是一样的,这个支付流程应该可以抽象出来,下面是一个支付过程的活动图:



在 这个活动图中,首先用户要选择购买的服务(虚拟点卡、金币、或会员服务等);在接下来进入支付方式(支付宝、易宝等)选择页面,服务器将根据用户选择的不 同支付方式,生成要向第三方支付服务器的请求参数,放回响应页面中;在新的页面中显示用户要支付的款项金额等信息,要求用户再次确认,如果用户确认后,用 户界面将转到第三方支付服务器,这个支付的过程我们就不用管了;如果用户在第三方支付服务器上付款成功,第三方服务器将会通知我们的服务器,告知我们一些 支付细节,这个时候,我们再在项目中再进行业务处理,比如:更改用户的业务状态。(注:支付参数提交过程可用get或post,参数后都要附加md5签名 字符串,安全性不用担忧,本人建议以get方式提交。)
经过上面的流程分析,我们可以把支付过程进一步总结为:支付请求参数的提交,以及支付成功回调的业务处理两个过程,根据这两个过程,我设计了类图(原图高清晰,请右键单独查看图片),并对之进行解释。


领域对象:
A、服务项目:可供用户选择的服务项目,包括名称、金额、时长等信息,这些信息在用户支付前进行选择;
B、用户:保存用户支付成功后的一些业务状态;
C、 支付记录:在用户离开我们的网站到第三支付界面前,我们的系统必须要保存一份支付记录,这个记录中有我方系统产生的唯一交易编号,交易状态为未成功;在支 付成功的回调中,我们从回调参数中取出我方系统产生的唯一交易编号,找到这条没有成功的交易记录,再填上第三方系统产生的唯一交易号(对账时要用),更改 支付记录状态为成功,最后更改用户业务状态。支付记录中会聚合服务项目及用户信息这两个对象,以方便在回调时找到支付的一些情况。
业务类设计:
PaymentAction 为支付处理控制器(可选择struts action或servlet做为父类),preparePay方法的主要作用是生成向第三方支付服务器提交的URL(有很多的支付信息要拼接),代码实 现步骤我已在图中进行了注明。其中有一点我要强调一下:我们页面中的付款金额,名称,描述等信息是固定的,而用户选择了不同的支付方式后,要生成不同支付 平台的参数,我的实现思路是,在控制器中通过request.getParameterMap()得到我们页面中输入的键值对,再转换成目标支付平台的参 数键值对,由于每个支付平台参数不同,我们就得把这个对应关系找一个地方单独存起来。
我设计了一个PayConfigurationReader 接口,里面包括读取键值映射、得到商户(我们系统)的ID,密钥等方法,这些方法都是通过对多个平台支付流程的理解后设计出来的,每个平台有一个自己的 properties参数存储文件,用来存放这个平台的配置信息,刚才我们所说的键值映射关系,就写在这个配置文件中。
具体支付平台实现类将实现PayConfigurationReader接口,完成自身平台相关操作。
如果你对流程不清楚的,或需要源代码的,可给我留言。

分享到:
评论
1 楼 melon 2012-02-20  
求源码学习,helcq@hotmail.com。谢谢

相关推荐

    基于Java的全能第三方支付对接开发工具包设计源码

    本源码项目是基于Java的全能第三方支付对接开发工具包设计,包含323个文件,主要使用Java、JavaScript和HTML编程语言。该工具包提供了优雅的轻量级支付模块,可以集成微信、支付宝、银联、友店、富友等多种支付方式...

    基于PHP的支付聚合第三方SDK设计源码

    本项目是一个基于PHP语言开发的支付聚合第三方SDK,包含154个文件,主要文件类型包括PHP源代码、HTML页面、Markdown文档、Git忽略文件、PHP编码规范文件、LICENSE文件、YAML配置文件、JSON配置文件、SVG图形、SSL...

    大型B2c互联网分布式电商项目(javashop完整)内附数据库+详细技术讲解视频+每一步需求分析等等等

    内容包括项目需求的分析、项目流程图绘制、电商分布式项目架构搭建、功能实现(涉及到的技术有:SSO单点登录,第三方支付平台对接,如支付宝等,solr搜索引擎集成,第三方短信平台对接,Redis 集成开发,以及一些...

    电子商务完整版

    E6Mall集成了第三方支付系统,支持支付宝、贝宝等第三方支付平台;同时集成了配送功能,可根据各第三方物流公司价格体系设计配送方案。 4. 高性能 E6Mall使用了Hibernate框架,通常可以选择Hibernate支持的高速缓存...

    计算机毕业设计-微信小程序农业电商服务系统_--+论文+项目源代码.rar

    此外,系统还具备物流配送功能,可对接第三方物流公司,实现农产品的快速配送。 支付结算方面,系统支持多种支付方式,确保资金安全。数据分析功能则为政府和企业提供决策依据,帮助优化农业产业结构。本系统采用...

    SpringBoot项目基于springBoot政府管理的系统设计.zip

    同时,系统还可能集成第三方服务,例如短信通知、支付网关等,以支持更广泛的功能需求。 总体来说,SpringBoot项目政府管理系统以其全面的功能、稳定的性能和优秀的用户体验,为政府机构提供了一个高效的管理和服务...

    SpringBoot项目旅游管理系统的设计与实现.zip

    其前后端分离的策略也使得系统能够灵活地适应不同的客户端应用和第三方接口。此外,系统还提供了API文档和开发者工具,以便与其它系统集成,扩展业务功能。通过这些特点,基于SpringBoot的旅游管理系统不仅提高了...

    java项目之基于SpringBoot的网上租赁系统(源码+万字报告文档+部署说明+ppt)

    支付系统集成:整合第三方支付接口,如支付宝或微信支付,以便用户可以在线完成支付过程。评论与评价:用户在租赁结束后可以对商品进行评价,这些信息有助于其他用户做出决策,并为商家提供反馈。搜索与推荐:提供...

    基于Android的服装个性化定制电商平台厂家模块的设计与实现.zip

    支付系统集成:整合第三方支付服务,如支付宝、微信支付等,为用户提供安全便捷的在线支付解决方案。安全性考虑:平台采取了加密传输、数据备份和防止SQL注入等措施,确保用户数据的安全。多语言支持:为了扩大市场...

    SpringBoot项目基于工程教育认证的计算机课程管理平台.zip

    同时,系统还可能集成第三方服务,例如短信通知、支付网关等,以支持更广泛的功能需求。 总体来说,SpringBoot项目基于工程教育认证的计算机课程管理平台以其全面的功能、稳定的性能和优秀的用户体验,为高等教育...

    SpringBoot项目球队训练信息管理系统.zip

    同时,系统还可能集成第三方服务,例如短信通知、地图服务API以及支付网关等,以支持更广泛的功能需求。 总体来说,SpringBoot项目球队训练信息管理系统以其全面的功能、稳定的性能和优秀的用户体验,为运动队的...

    计算机专业毕设精选-ASP网上书店设计与实现(源代码+论文).rar

    4. **在线支付**:集成第三方支付接口,支持多种支付方式。 5. **后台管理**:管理员可以对图书信息进行添加、修改、删除等操作,对订单进行管理,以及对用户权限进行设置。 **论文内容**: 论文详细介绍了项目的...

    magento开源电子商务平台 v2.1.0.zip

    包括购物、航运、产品评论等等,充分利用开源的特性,提供代码库的开发,非常规范的标准,易于与第三方应用系统无缝集成。 magento开源电子商务平台系统特色: 1、容易整合 Magento(麦进斗)让整合第三方厂商解决...

    计算机专业毕设精选-ASP网上书店的设计与实现(源代码+论文).rar

    5. **在线支付**:集成第三方支付接口,支持多种支付方式。 6. **后台管理**:管理员可以对图书信息、用户信息、订单等进行管理和维护。 **论文内容**: 论文详细介绍了项目的背景、意义、相关技术概述、系统分析...

    SpringBoot项目基于springboot搭建的疫情管理系统.zip

    同时,系统还可能集成第三方服务,例如短信通知、支付网关等,以支持更广泛的功能需求。 总体来说,SpringBoot项目疫情管理系统以其全面的功能、稳定的性能和优秀的用户体验,为公共卫生管理提供了一个高效和科学的...

    SpringBoot项目健身房管理系统.zip

    同时,系统还可能集成第三方服务,例如短信通知、支付网关等,以支持更广泛的功能需求。 总体来说,SpringBoot项目健身房管理系统以其全面的功能、稳定的性能和优秀的用户体验,为健身行业的管理和运营提供了一个...

    SpringBoot项目小徐影城管理系统.zip

    系统还可能整合第三方服务,例如短信通知、支付网关等,以支持更广泛的功能需求。 总而言之,SpringBoot项目小徐影城管理系统通过其便捷高效的服务,不仅优化了影院管理流程,也提升了观众的观影体验,同时为影院...

    SpringBoot项目校园失物招领系统.zip

    同时,系统还可能集成第三方服务,例如短信通知、支付网关等,以支持更广泛的功能需求。 总体来说,SpringBoot项目校园失物招领系统以其实用的功能、稳定的性能和优秀的用户体验,为校园内失物招领提供了一个高效的...

    SpringBoot项目洗衣店订单管理系统.zip

    同时,系统还可能集成第三方服务,例如短信通知、支付网关等,以支持更广泛的功能需求。 总体来说,SpringBoot项目洗衣店订单管理系统以其实用的功能、稳定的性能和优秀的用户体验,为洗衣店提供了一个高效的管理和...

    企业多用户商城(B2B2C)平台建设与运营解决方案.rar

    这包括选择合适的电商平台框架、集成第三方支付和物流服务、优化移动购物体验、以及运用大数据和人工智能技术来提高运营效率和个性化客户体验。此外,解决方案也强调了商城运营的重要性,提供了一系列有效的运营管理...

Global site tag (gtag.js) - Google Analytics