支付平台支付流程解析
2020-05-18 11:36:46 0 举报
高可用支付平台系统流程设计
作者其他创作
大纲/内容
判断数据集中订单号是否重复
校验是否重复订单并且数据是否发生改变
各方法调用父类方法AbstractPayAction等的dopost方法
验证退款单笔数据集中存在的订单数量与退款笔数是否不匹配
商户发来支付请求和数据
订单是否不存在
解析订单保存退款流水
返回数据给商户
各第三方退款servlet各自处理数据通过调用CallbackUtils工具类将支付结果回调给各商户
dbOpera方法校验数据并储存数据库生产请求
获取第一张订单生成退款批次号
判断商户是否可用相应渠道
将数据写入response里返回给调用方
商户发来退款请求
GatewayServlet类获取服务名称和版本号找到对应action(如手机wap支付)并执行其中的dopost方法
验证单笔数据集合数据是否正确
商户根据支付平台反馈信息向个支付平台发起请求
第三方支付收到支付请求并处理根据传输的通知地址回调支付平台
支付平台通过统一支付平台分发各第三方支付servlet进行数据加工储存
商户发来查询请求
获得批次号等信息
根据渠道和方式判断使用哪个payaction
调用对应第三方的支付类中pay方法各类均继承PayAction
请求QueryOrderAction调用dbOpera方法
各第三方支付servlet各自处理数据通过调用CallbackUtils工具类将支付结果回调给各商户
判断数据库中是否存在支付记录
查询批次号对应订单号
调用各父类AbstractRefundAction等的dopost方法
确定该渠道是否支持该网银支付
调用对应第三方的退款类refund方法各退款类继承RefundAction
转换成OrderPayInfo对象并检查参数和签名是否被篡改
退款金额是否大于剩余金额
获取参数键值对并以kmap形式储存
获取支付渠道 如果已存在交易成功支付流水,则取最新的成功支付流水所用的渠道 如果不存在则按权重随机获取支付渠道
组织信息去订单流程表中查找内容OrderTradeFlow14年开始订单查询接口不在请求第三方
商户不存在该银行代码对应支付方式直接跳出报错
是否是该平台商户的订单
bankCode判断是否是指定银行支付
用户未指定支付渠道,随机选择支持该银行代码的渠道
0 条评论
下一页