Explorar el Código

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

release_toaliyun_real
gongbiao hace 6 años
padre
commit
994cb817d8
Se han modificado 1 ficheros con 25 adiciones y 5 borrados
  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 Ver fichero

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


Cargando…
Cancelar
Guardar