因为我们上一个项目是需要做一个书籍的买卖支付的系统,我们调用了微信支付和支付宝支付两个接口,下面我来讲一下用java做支付时需要注意的问题和考虑的难点
一.首先从订单开始 防止订单重复提交问题
1.前端做防抖 防止重复提交
2.在订单详情页之前,前端生成uuid,然后后端存入token中,进入详情页之后后端拿着传入token去redis中比对,如果是比对成功那么就能防止订单重复,用完之后需要删除redis中的token
二.如何防止重复支付,支付调单
1.我们建立30s的最大超时时间,主动10s一次查询异步回调的通知,如果超过了最大五次直接就抛异常处理。能处理内部调单和外部调单的风险
三.如何去注意退款接口
我们的业务是超过三天,或者学生在学校拿到书之后就不能退款了
特别需要注意的是同一笔订单我们要设置退款时间间隔为两分钟,防止并发请求导致退款失败,
四.退款回调操作