@startuml

autonumber

支付系统 -> 渠道系统: 预下单
渠道系统 -> 渠道系统: 参数校验
渠道系统 -> 渠道数据库: 查询是否存在此单
渠道系统 <-- 渠道数据库: 若交易状态为 成功（SUCCESS）/银行处理中(PROCESSBANK)，直接返回，不进行插入等后续操作
渠道系统 -> 渠道数据库: 插入此单，并进行初始化
渠道系统 -> "第三方机构 \n (微信/支付宝/招行聚合...)" : 调用第三方机构
"第三方机构 \n (微信/支付宝/招行聚合...)" --> 渠道系统 : 返回相应的成功状态码
渠道系统 -> 渠道数据库: 修改此单状态为银行处理中(PROCESSBANK)
渠道系统 -> 支付系统: 预下单成功
@enduml