diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java index 93a3007e7..9f5299b7c 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java @@ -134,12 +134,20 @@ public class WxPayOrderController extends BaseController { if (payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_SUCCESS.getCode())) { order = wxOrderService.getById(orderId); return new ResultData(Result.SUCCESS, "支付状态更新成功", order); - } else { + } else{ + return new ResultData(ErrorCode.PAY_ORDER_ERROR, "支付状态未知,请等待!!"); } } else if (status.equals(EnumPayStatus.PAY_STATUS_FAIL.getCode())) { // 有价券支付失败 wxPayOrderService.handlePayOrderFail(payOrder, EnumPayStatus.PAY_STATUS_FAIL.getCode()); + } else if (status.equals(EnumPayStatus.PAY_STATUS_CANCEL.getCode())) { + //取消支付,更新支付状态为已取消 + payOrder = wxPayOrderService.getById(payOrderId); + if (null != payOrder && payOrder.getPayOrderStatus()==EnumPayStatus.PAY_STATUS_WAIT.getCode()) { + payOrder.setPayOrderStatus(EnumPayStatus.PAY_STATUS_CANCEL.getCode()); + wxPayOrderService.saveOrUpdate(payOrder); + } } return new ResultData(Result.SUCCESS, "支付状态更新成功"); } catch (MallinkException e) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index 0b6f3e2df..636db98aa 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -240,6 +240,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { }else { //如果是其他状态的,可以重复支付,把状态更新为支付中,不再新增订单 oldRecord.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); + //重新设置支付no + oldRecord.setPayOrderNo(String.valueOf(idworker.nextId())); int sqlRow0 = wxPayOrderMapper.updateById(oldRecord); if (sqlRow0 != 1) { logger.error("pay order update error: " + record.toString());