文档介绍:集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#
软件项目解决方案
解
决
方
案
XXXX科技有限公司
XXXX年XX月
目录
集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#
软件项目解决方案
解
决
方
案
XXXX科技有限公司
XXXX年XX月
目录
关于本方案
本文档的详细描述了修车养车网支付系统项目的每个功能的设计方案。例如功能的需求来源,与各功能模块之间的关系,功能操作流程示例,序列图,程序设计,外部接口,数据库设计等。开发人员可通过阅读该文档快速的了解每一个功能的业务逻辑,便于日后在对系统进行修改时确认修改内容是否正确。
同时本文档也是与终端用户(在本项目中大多数情况是技术支持人员)进行系统功能确认,业务流程确定的唯一文档。
概述
项目背景
由于公司多个系统都用到了支付模块,而且功能等方面都一致。
建设目标
把支付模块单独整理出来,然而实现统一管理、维护方便、并且方便以后新系统的开发。
建设原则
保证支付的安全性,一致性,不影响原系统的支付,在原有系统上以最小的改动方面来实现这个支付的分离。
需求描述及分析
概述
需求分析
原各系统的支付
问题分析
从上图可以看出我们这个养车修车网有好修养、好淘气、等多个项目。然而他们都需要用到支付宝、微信、银联这三个第三方支付。那么既然都是同一个平台的系统,每个系统支付都重新写,或者以后又有新项目支付又要写支付。
得出以下结论:
代码重用性不高
维护不方便
需求描述
业务需求
解决问题
为了解决上面存在的问题,将原来各系统的支付独立分离出来整合成一个支付系统。现在就是由各个系统去和这个独立出来的支付系统交互,然后在由支付系统再去调用第三方支付(微信、银联、支付宝)进行交互。这样即使有新的系统需要用到支付也不要重新写支付的功能,然后也也方便以后的管理维护。
接口需求
支付
各个系统调用支付系统,然后我们在根据出传入的支付途径的调用对应的第三方支付进行支付(WEB)或者返回相应的属性(APP),并且返回成功或失败。
退款
各个系统调用支付系统,然后我们在根据出传入的支付途径的调用对应的第三方支付进行退款,并且返回成功或失败。
支付回调
第三方通知我们的支付系统的回调地址,然后我们验证签名和参数解析,如果支付成功就修改付款单支付状态为已支付,然后根据在通知付款单的系统ID将结果通知对应的系统,如果通知失败就隔1秒在失败就隔2秒依次加时间请求,超过20次就添加到系统日志里面。
退款回调
第三方通知我们的支付系统的回调地址,然后我们验证签名和参数解析,如果支付成功就修改付款单支付状态为已支付,然后根据在通知付款单的系统ID将结果通知对应的系统,如果通知失败就隔1秒在失败就隔2秒