模拟微信支付后续
1.用户端取消订单
订单处于待接单状态下取消,需要进行退款
由于前面模拟微信支付,直接调用了支付成功的接口,实际上并未支付
此时用户端取消订单,需要跳过微信支付退款接口,直接修改数据库订单状态
注释调用wechatpayutil.refund方法
完整代码如下:
/**
* 用户取消订单
*
* @param id
*/
public void userCancelById(Long id) throws Exception {
// 根据id查询订单
Orders ordersDB = orderMapper.getById(id);
// 校验订单是否存在
if (ordersDB == null) {
throw new OrderBusinessException(MessageConstant.ORDER_NOT_FOUND);
}
//订单状态 1待付款 2待接单 3已接单 4派送中 5已完成 6已取消
if (ordersDB.getStatus() > 2) {
throw new OrderBusinessException(MessageConstant.ORDER_STATUS_ERROR);
}
Orders orders = new Orders();
orders.setId(ordersDB.getId());
// 订单处于待接单状态下取消,需要进行退款
if (ordersDB.getStatus().equals(Orders