压单退款需要注意什么
时间: 2023-11-15 13:51:59 浏览: 91
压单退款需要注意以下几点:
1. 参数设置:在实现退款功能时,需要设置相关参数并发送给微信支付后台。其中,需要选择微信支付订单号或商户订单号作为退款标识,并提供一个退款编号。此外,退款功能还需要注意交易时间超过一年的订单无法提交退款,以及单笔交易分多次退款的限制。
2. 处理流程:当用户点击退款申请后,后台接收请求并组装参数后发送给微信支付后台。微信支付会返回一个JSON数据,其中包含退款单号、订单号、退款状态等信息。根据返回的状态,可以将数据库中的订单状态更新为退款中或退款成功,并记录相关日志。同时,还需要处理退款异常的情况。
3. 微信退款回调通知:当面对大量退款请求时,采用定时器策略去查询数据库的效率较低且会加重数据库负担。因此,可以使用RabbitMQ的延迟队列进行处理。当用户申请退款后,将订单加入延迟队列,存活时间为5分钟。在5分钟后,先查询数据库中该订单的状态,若仍为退款中,则向微信支付后台发送查询请求。若返回结果仍为处理中,则将消息再次入队,5分钟后再次查询。若订单已处理完成,则更新订单状态并记录相关日志。
以上是压单退款需要注意的几点。
#### 引用[.reference_title]
- *1* *2* *3* [Springboot----项目整合微信支付(利用RabbitMQ延迟队列处理用户退款)](https://blog.csdn.net/weixin_45750572/article/details/125632133)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文