Przeglądaj źródła

[账单支付][修改][欠缴金额不同多次提交订单问题]

release_toaliyun_real
gongbiao 6 lat temu
rodzic
commit
994cb817d8
1 zmienionych plików z 25 dodań i 5 usunięć
  1. +25
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxPayBillServiceImpl.java

+ 25
- 5
mallinkService/src/main/java/com/iformall/service/impl/WxPayBillServiceImpl.java Wyświetl plik

@@ -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");


Ładowanie…
Anuluj
Zapisz