【接口】差错退款接口
2017-03-13 17:43:01 0 举报
差错退款接口是一种用于处理用户因购买商品或服务出现错误而申请退款的系统功能。当用户发现购买的商品或服务存在问题,如收到错误的商品、商品损坏、服务未按约定提供等,可以通过该接口向商家发起退款申请。商家在接收到退款申请后,需要对用户的退款请求进行审核,确认无误后,将退款金额原路返回给用户。此接口不仅提高了商家的服务质量,也提升了用户的购物体验。同时,通过自动化处理退款流程,降低了人工操作的错误率和工作量,提高了工作效率。
作者其他创作
大纲/内容
构建退款订单记录
唯一索引:initiator + request_no
获取所需要的退款分流
该部分同交易退款接口的处理逻辑
差错退款反查执行器定制
为支付处理器定制修改获取反查执行器的逻辑
参数校验
参数合法性校验
构建退款明细扩展
执行退款反查执行器时,若创建了退款明细扩展,则在此处创建退款明细扩展记录
查询支付接口
支付退款不需要做退款订单累计,因为支付退款退款金额不是走的支付订单的金额,而是差错支付的金
构建退款明细累计
如果是首次退款,则创建;否则,累加更新。唯一索引: initiator + payment_idpayment_id=refundDetailEntity.getPaymentId(
再次获取退款方式
只有超过了上一步的联机有效期时,才需要检查是否有配置二次退款方式该部分同交易退款接口的处理逻辑
校验通过
是否在新配置的名单内
统一配置中新增需要校验的发起方名单
查询所有退款分流
先远程调用查询支付接口(PayInterfaceDTO)然后查询退款中心的退款分流表,并按照优先级进行排序上面的过程中有缓存
参数校验、账户校验
新增的参数是否填写:relatedTransId然后请求账务查询接口校验是否完成扣款
主动通知
超过联机有效期,则发送主动通知
业务校验
主要是校验退款金额是否超限
构建退款订单记录时新增:relatedTransId
构建退款明细记录
详情见下图 ↓
获取支付订单DTO
该DTO必填,参数校验过了,此处又有校验,让人十分困惑,weird.
交易退款数据持久化
退款订单记录退款明细记录退款明细扩展记录退款明细累计记录退款处理记录
在
因新增加了发起方,需要修改配置文件
组装退款明细Model
用于临时存储前面生成的这4个记录,退款明细model不会入库
获取退款反查执行器
根据发起方,产品类型获取易宝交易退款反查执行器。yeepayOrderSearchHandlerMap
下面的所有模块,只要抛出异常,则流程执行结束。初始化配置文件:spring-refund-core-biz.xml
退款次数及有效期判断
联机有效期判断
持久化前判断线下或上传文件退款是否超过非联机退款有效期,超过则直接为失败的退款记录
抛出异常
构建退款明细
生成一条新的退款明细记录
不在
获取反查执行器
执行器: YeepayCodeSearchServiceImpl
构建退款相关记录的流程:
构建退款处理记录
退款处理状态及提交银行状态:INIT需要查看构造详情时,扒代码:RefundRequestBizImpl 837行
0 条评论
下一页