| @@ -156,7 +156,6 @@ public class WxPayBillServiceImpl implements WxPayBillService { | |||||
| if(resultData.code!=Result.SUCCESS){ | if(resultData.code!=Result.SUCCESS){ | ||||
| return new ResultData(ErrorCode.ORDER_IS_FAIL); | return new ResultData(ErrorCode.ORDER_IS_FAIL); | ||||
| } | } | ||||
| record=wxPayBillMapper.selectByPrimaryKey(wxPayBill.getId()); | record=wxPayBillMapper.selectByPrimaryKey(wxPayBill.getId()); | ||||
| record.setOpenId(openId); | record.setOpenId(openId); | ||||
| //创建新的订单号 | //创建新的订单号 | ||||
| @@ -175,8 +174,29 @@ public class WxPayBillServiceImpl implements WxPayBillService { | |||||
| logger.info("新的订单数据:"+JSONObject.toJSONString(record)); | logger.info("新的订单数据:"+JSONObject.toJSONString(record)); | ||||
| }else{ | }else{ | ||||
| logger.info("数据库存在订单信息,更新支付中状态,返回之前的预支付信息:"+JSONObject.toJSONString(wxPayBill)); | 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 noncestr = Utility.generate32UUID(); | ||||
| String timestamp = String.valueOf(Utility.getCurrentTimeStamp()); | String timestamp = String.valueOf(Utility.getCurrentTimeStamp()); | ||||
| Map<String, String> sighMap = MapUtil.getOrderMap(); | Map<String, String> sighMap = MapUtil.getOrderMap(); | ||||
| @@ -194,13 +214,13 @@ public class WxPayBillServiceImpl implements WxPayBillService { | |||||
| returnMap.put("signType", "HMAC-SHA256"); | returnMap.put("signType", "HMAC-SHA256"); | ||||
| logger.info("订单在120分钟之内没有失效,延用之前预支付订单号:"+JSONObject.toJSONString(wxPayBill)); | logger.info("订单在120分钟之内没有失效,延用之前预支付订单号:"+JSONObject.toJSONString(wxPayBill)); | ||||
| return new ResultData(Result.SUCCESS, "创建支付订单成功", returnMap); | return new ResultData(Result.SUCCESS, "创建支付订单成功", returnMap); | ||||
| }else{ | |||||
| } else { | |||||
| //超过时间关闭订单 | //超过时间关闭订单 | ||||
| logger.info("超过时间关闭订单:" + wxPayBill.toString()); | |||||
| ResultData resultData = payBillClose(appInfo, wxPayBill); | ResultData resultData = payBillClose(appInfo, wxPayBill); | ||||
| if(resultData.code!=Result.SUCCESS){ | if(resultData.code!=Result.SUCCESS){ | ||||
| return new ResultData(ErrorCode.ORDER_IS_FAIL); | return new ResultData(ErrorCode.ORDER_IS_FAIL); | ||||
| } | } | ||||
| logger.info("超过时间关闭订单:"+wxPayBill.toString()); | |||||
| record=wxPayBillMapper.selectByPrimaryKey(wxPayBill.getId()); | record=wxPayBillMapper.selectByPrimaryKey(wxPayBill.getId()); | ||||
| //创建新的订单号 | //创建新的订单号 | ||||
| payBillNo = record.getId()+DateUtils.getSystemTime("yyMMddHHmmss"); | payBillNo = record.getId()+DateUtils.getSystemTime("yyMMddHHmmss"); | ||||