1、支付流程设计
在统一建模语言(UML)中,时序图是描述业务场景的动态视图之一,在时序图中,参与者之间的消息交互是主体,这里我们采用时序图来描述支付流程,并做出状态参数的模式分析。
在所有的网上支付业务当中,最核心的内容就是支付流程,这直接关系到系统业务处理的逻辑合理性与流畅性。
具体的流程说明如下:
(1)用户在商家和企业的网站上浏览并选择商品,然后放入购物车,并进行相应的订单制服程序;
(2)商家和企业根据顾客发出的购买请求,填写和下发订单,并向支付交易Web 系统发送请求支付信息;
(3)支付交易 Web 系统对商户的有效性进行检查,同时对请求支付信息做出验证,然后再把订单信息以及交易信息通过持久层存储到数据库里面;
(4)检查商家提出的请求当中是否包括银行通道信息,若包括,则提交订单信息到支付网关,同时在浏览器当中打开银行支付页面;
(5)提供银行列表以及订单信息给客户,由客户自主选择支付银行;
(6)在客户选择了支付银行之后,提交支付交易请求发送到 Web 系统那里;
(7)更新订单信息内容;
(8)提交更新过的订单信息给对应银行,通过浏览器显示银行支付页面;
(9)返回到支付页面;
(10)由用户填写账户信息,确认之后提交;
(11)通过银行后台服务器处理支付信息,并生成支付结果信息;
(12)支付交易 Web 系统处理完银行的返回结果,更新订单列表,将支付结果信息发送到商家以及客户那里。
2、支付结果处理流程设计
在统一建模语言(UML)中,活动图是描述业务场景的动态视图之一,这个流程可以分成两个部分,第一部分是修改订单表,包括订单状态、结算日期以及银行交易编号等;第二部分是发送支付结果给商家以及客户。
(1)在系统接收银行支付结果信息之后,可以记录到数据库里面;
(2)若 Order 支付状态显示支付成功,支付流程可以结束;
(3)在加密 Order 之后,可以拒绝其他线程介入操作;
(4)在交易完成之后会自动更新交易表;
(5)若返回金额信息和订单信息出现不一致的情况,系统就会抛出异常,并结束交易流程;
(6)若原来的订单状态结果显示为失败,而返回结果显示的是成功,就需要将原来的订单状态修改过来,具体是以返回结果显示为准;
(7)若原订单状态出现异常,会及时将异常情况发送给商家;
(8)在解锁 Order 之后,通过查询可知订单字段是“真”,则应该发送通知。
扩展阅读:支付网关接口设计的原则
统一支付网关接口分为商户接口和银行接口两种,不管哪种类型的接口,在进行接口设计时必须遵循一定的原则。对于商户接口,为了有利于对订单的存储和处理,以及商户的查询、冲正等操作的顺利进行,要求商家和企业传入的订单信息必须包括一些基本信息;
对于银行接口,为了使支付网关能够顺利地跟银行交互,在设计支付网关时必须严格遵守各银行已经制定的接口标准。具体原则如下:
(1)商家接口设计原则
在该原则指导下,首先要明确商家的信息传输规范内容,尽量使用安全性高、快捷性好的标准,同时还要能够封装商家接口,确保各项开发工作更加容易。其次要明确商家上传的订单信息字段情况,确保其中能够包括各项基本信息符合其字段要求;最后是要明确信息的传输格式,以避免不兼容问题的发生。
(2)银行接口设计原则
在该原则指导下,首先要采取各家银行都是单独处理的方式,以便能够与银行接口相对接。其次是要保证银行网络支付系统的订单唯一性。最后是每个银行设一个 ID,每种支付通道设一个 ID,银行 ID 与通道 ID 是一对多的关系。
(3)稳定性原则
一旦成功实施电子商务支付网关以后,就会对其产生很大依靠性,很难做到没有它。所以,从最底层的数据库一直最上面的功能层,系统都必须进行严格的测试和检查:数据库是否稳定、系统功能是否顺畅、有没有功能堵塞、数据丢失的现象;能否在不同的网络、硬件、操作习惯以及操作系统中进行长期、平稳地运行;适合大规模用户使用等,以保证其能够正常进行。
在系统的具体设计时就需要充分的考虑到停电、防水的性能措施,已经具备灾难恢复功能,保证系统在部分设备发生故障的时候仍然能够保持运行;还要保证在面临一些人为的事故时,系统能够不受到大的影响,保持运行。