无忧支付网首页
站内搜索
您当前的位置:主页 > 相关文档 >

支付平台主要业务流程设计分析

添加时间:2022-10-18

  1、超时查询流程设计

  超时处理流程的生命周期开始于支付平台日间交易系统长时间未获取到下游通道的返回结果。具体流程如下:

超时查询流程图

图1 超时查询流程图

  如图1所示,当交易超时时,会被插入异常登记表,之后会有一个定时任务定时从表中捞取待处理的异常交易。捞到数据后,会开启多线程,采用并行的方式异步处理这些异常交易。

  对于超时的异常交易,需要发起一个查询交易,去下游查询该交易的交易结果,若能明确查询到交易结果,则更新交易状态;若无法查询到明确的交易结果,判断异常处理次数是否超限,若处理次数超限则不处理,若处理次数没有超限,则等待下次轮询继续处理。值得注意的有两点:

  1. 在多线程处理任务的时候,被处理的异常任务需要加锁,防止该任务被重复处理。本项目采用采用状态的控制的方式,对于处理中的交易,更改其状态为处理中,异常处理定时任务在捞数的时候,不会捞取处理中的交易。

  2. 当多次处理同一个异常任务的时候,每次处理任务的时间间隔不应一致。本项目对于每次异常处理的时间间隔设计为 1,1,3,6,10,15……(分钟)

  2、异步通知流程设计

  异步通知流程的生命周期开始于在交易超时后,通过查询获取到最终的结果。此时交易发起系统把需要通知的任务放到消息队列中,通知系统从消息队列中获取到任务后,触发了通知流程。

异步通知任务流程

图2 异步通知任务流程

  图2是异步通知的任务流程。在接收到通知上游商户的指令后,通知系统需要进行以下步骤:

  1. 解析接受到的信息,更新商户订单表;

  2. 插入通知登记表;

  3. 通知上游商户,根据通知结果更新通知登记表。

  3、委托代收流程设计

  委托代收流程的生命周期从上游的外部商户发起代收交易请求开始,支付平台在订单落地后,通过路由算法选择合适的下游通道,然后登记交易流水,发往下游通道。当遇到交易超时的场景时,为了优化上游商户的支付体验,支付平台提供了异步通知的服务,在查询到交易结果后会第一时间把交易结果通知到上游商户。

委托代收交易流程

图3 委托代收交易流程

  图3是委托代收交易的流程设计。委托代收交易的具体流程如下:

  1. 上游商户请求支付接口,支付系统进行验签,验签不通过,直接返回失败;

  2. 对上游系统的报文进行校验,校验不通过,直接返回失败;

  3. 校验通过的支付订单落地订单表;

  4. 路由选择支持的通道,若没有可用通道,直接返回失败;

  5. 登记资金流水,并发送下游代收通道;

  6. 代收交易超时,则进入超时查询流程,超时查询流程查询到最终交易结果,通过通知流程把结果通知给上游商户,交易结束;

  7. 代收交易实时返回明确成功或者失败,更新相应库表,然后组织应答报文,加签并把交易结果返回给上游商户。

  4、银行账户充值流程设计

  银行账户充值交易的发起方是银行渠道端。当用户使用银行 APP 或者通过微信银行,选择从他行卡转账给用户本行一、二类户时,会发起一个银行账户充值交易。由于该交易是由行内系统直接发起,因此不需要通过支付网关,直接请求资金交换系统即可。

银行账户充值流程

图4 银行账户充值流程

  图4是银行账户充值交易的流程图。具体的交易流程如下:

  1. 用户发起充值交易请求,行内渠道端请求支付平台资金交换系统;

  2. 校验请求报文格式是否正确,校验不通过直接返回交易失败;

  3. 插入总交易流水表,通道路由选择通道,插入子交易流水表并发送下游代收通道;

  4. 若代收交易失败,更新对应库表,然后返回上游交易失败,交易结束;

  5. 若代收交易超时,则走超时查询流程,查询到交易成功,则发起超时入账流程,超时入账流程为步骤6-步骤8,交易结束;

  6. 若代收交易返回成功,更新相应库表,然后插入一条新的子交易流水,并请求银行核心记账接口;

  7. 若银行核心记账交易超时,进入超时查询流程,交易结束。

  8. 若核心记账交易返回明确的交易成功或者失败,更新相应库表,返回上游交易结果,交易结束。

关闭

1.点击下面按钮复制微信号

***********

2.打开微信→查找微信号

加为好友 开始支付接入