| @@ -156,7 +156,6 @@ public class WxPayBillServiceImpl implements WxPayBillService { | |||
| if(resultData.code!=Result.SUCCESS){ | |||
| return new ResultData(ErrorCode.ORDER_IS_FAIL); | |||
| } | |||
| record=wxPayBillMapper.selectByPrimaryKey(wxPayBill.getId()); | |||
| record.setOpenId(openId); | |||
| //创建新的订单号 | |||
| @@ -175,8 +174,29 @@ public class WxPayBillServiceImpl implements WxPayBillService { | |||
| logger.info("新的订单数据:"+JSONObject.toJSONString(record)); | |||
| }else{ | |||
| logger.info("数据库存在订单信息,更新支付中状态,返回之前的预支付信息:"+JSONObject.toJSONString(wxPayBill)); | |||
| //订单在120分钟之内没有失效,延用之前预支付订单号 | |||
| if(wxPayBill.getPayTimeEnd().after(new Date())){ | |||
| if (!owe.equals(wxPayBill.getPayAmount())) { | |||
| logger.info("欠缴费用与之前不同发起新的订单:" + wxPayBill.toString()); | |||
| ResultData resultData = payBillClose(appInfo, wxPayBill); | |||
| if (resultData.code != Result.SUCCESS) { | |||
| return new ResultData(ErrorCode.ORDER_IS_FAIL); | |||
| } | |||
| record = wxPayBillMapper.selectByPrimaryKey(wxPayBill.getId()); | |||
| //创建新的订单号 | |||
| payBillNo = record.getId() + DateUtils.getSystemTime("yyMMddHHmmss"); | |||
| record.setPayTimeStart(currentDate); | |||
| long endtime = currentDate.getTime() + 120 * 60 * 1000; | |||
| record.setPayTimeEnd(new Date(endtime)); | |||
| record.setPayBillNo(payBillNo); | |||
| record.setPayAmount((Long) bill.get("owe")); | |||
| record.setUpdateTime(currentDate); | |||
| sqlRow = wxPayBillMapper.updateByPrimaryKeySelective(record); | |||
| if (sqlRow != 1) { | |||
| logger.error("pay bill update error: " + JSONObject.toJSONString(record)); | |||
| throw new MallinkException(ErrorCode.DB_FAIL); | |||
| } | |||
| logger.info("新的订单数据:" + JSONObject.toJSONString(record)); | |||
| } else if (wxPayBill.getPayTimeEnd().after(new Date())) { | |||
| //订单在120分钟之内没有失效,延用之前预支付订单号 | |||
| String noncestr = Utility.generate32UUID(); | |||
| String timestamp = String.valueOf(Utility.getCurrentTimeStamp()); | |||
| Map<String, String> sighMap = MapUtil.getOrderMap(); | |||
| @@ -194,13 +214,13 @@ public class WxPayBillServiceImpl implements WxPayBillService { | |||
| returnMap.put("signType", "HMAC-SHA256"); | |||
| logger.info("订单在120分钟之内没有失效,延用之前预支付订单号:"+JSONObject.toJSONString(wxPayBill)); | |||
| return new ResultData(Result.SUCCESS, "创建支付订单成功", returnMap); | |||
| }else{ | |||
| } else { | |||
| //超过时间关闭订单 | |||
| logger.info("超过时间关闭订单:" + wxPayBill.toString()); | |||
| ResultData resultData = payBillClose(appInfo, wxPayBill); | |||
| if(resultData.code!=Result.SUCCESS){ | |||
| return new ResultData(ErrorCode.ORDER_IS_FAIL); | |||
| } | |||
| logger.info("超过时间关闭订单:"+wxPayBill.toString()); | |||
| record=wxPayBillMapper.selectByPrimaryKey(wxPayBill.getId()); | |||
| //创建新的订单号 | |||
| payBillNo = record.getId()+DateUtils.getSystemTime("yyMMddHHmmss"); | |||