前言
好了,回归到今天的主题,今天分享一下支付系统中异常一些处理方式。
其实这些处理方式并不只是局限于支付系统,也可以适用于其他系统,大家可以借鉴,应用到自己系统中,提高自己系统的健壮性。
异常是系统运行不可避免会发生的问题,如果一切都正常,我们的系统设计将会相当简单。
但是可惜没有人能做到这一点,所以为了处理异常可能导致的问题,我们不得不需要加上很多额外的设计,用来应对这些异常。
可以说系统设计中,异常处理需要我们着重思考,将会占据我们大部分的精力。
下面我们先来看下支付系统中最常见的异常:掉单
欢迎关注我的公众号:程序通事,获得日常干货推送。如果您对我的专题内容感兴趣,也可以关注我的博客:studyidea.cn
掉单异常
一个最常见的支付平台架构关系如下所示:
上图我们是站在第三方支付公司支付角度,如果是自己公司的内部支付系统,那么外部商户这一块其实就是公司内部一些系统,比如说订单系统,而外部支付渠道其实就是第三方支付公司
我们以携程为例,在其上面发起一笔订单支付,将会经过三个系统:
- 携程创建订单,向第三方支付公司发起支付请求
- 第三方支付公司创建订单,并向工行发起支付请求
- 工行完成扣款操作,返回第三方支付公司
- 第三方支付完成订单更新并返回携程
- 携程变更订单状态
上面的流程,简单如下图所示:
在这个过程就可能会碰到,用户工行卡已经扣款,但是携程订单却还是待支