|
|
@@ -111,7 +111,7 @@ public class WxPayBillServiceImpl implements WxPayBillService { |
|
|
|
|
|
|
|
|
// 2. check 是否有支付订单 |
|
|
// 2. check 是否有支付订单 |
|
|
Date currentDate = new Date(); |
|
|
Date currentDate = new Date(); |
|
|
record.setPayBillStatus(EnumPayStatus.PAY_WAY_WAIT.getCode()); |
|
|
|
|
|
|
|
|
record.setPayBillStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); |
|
|
List<WxPayBill> list = wxPayBillMapper.findList(record); |
|
|
List<WxPayBill> list = wxPayBillMapper.findList(record); |
|
|
String payBillNo; |
|
|
String payBillNo; |
|
|
if (list.size() <= 0) { |
|
|
if (list.size() <= 0) { |
|
|
@@ -129,7 +129,7 @@ public class WxPayBillServiceImpl implements WxPayBillService { |
|
|
record.setPayBillNo(payBillNo); |
|
|
record.setPayBillNo(payBillNo); |
|
|
record.setPayAmount((Integer) bill.get("owe")); |
|
|
record.setPayAmount((Integer) bill.get("owe")); |
|
|
record.setPayVendor(EnumPayWay.PAY_WAY_WEAPP.getCode()); |
|
|
record.setPayVendor(EnumPayWay.PAY_WAY_WEAPP.getCode()); |
|
|
record.setPayBillStatus(EnumPayStatus.PAY_WAY_WAIT.getCode()); |
|
|
|
|
|
|
|
|
record.setPayBillStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); |
|
|
record.setShare(isShare.getCode()); |
|
|
record.setShare(isShare.getCode()); |
|
|
|
|
|
|
|
|
int sqlRow = wxPayBillMapper.insertSelective(record); |
|
|
int sqlRow = wxPayBillMapper.insertSelective(record); |
|
|
@@ -398,13 +398,13 @@ public class WxPayBillServiceImpl implements WxPayBillService { |
|
|
//USERPAYING--用户支付中 |
|
|
//USERPAYING--用户支付中 |
|
|
//PAYERROR--支付失败(其他原因,如银行返回失败) |
|
|
//PAYERROR--支付失败(其他原因,如银行返回失败) |
|
|
if ("SUCCESS".equals(trade_state)) { |
|
|
if ("SUCCESS".equals(trade_state)) { |
|
|
record.setPayBillStatus(EnumPayStatus.PAY_WAY_SUCCESS.getCode()); |
|
|
|
|
|
|
|
|
record.setPayBillStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); |
|
|
handlePayBillStatusUpdate(record); |
|
|
handlePayBillStatusUpdate(record); |
|
|
} else if ("USERPAYING".equals(trade_state)) { |
|
|
} else if ("USERPAYING".equals(trade_state)) { |
|
|
record.setPayBillStatus(EnumPayStatus.PAY_WAY_WAIT.getCode()); |
|
|
|
|
|
|
|
|
record.setPayBillStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); |
|
|
handlePayBillStatusUpdate(record); |
|
|
handlePayBillStatusUpdate(record); |
|
|
} else { |
|
|
} else { |
|
|
record.setPayBillStatus(EnumPayStatus.PAY_WAY_FAIL.getCode()); |
|
|
|
|
|
|
|
|
record.setPayBillStatus(EnumPayStatus.PAY_STATUS_FAIL.getCode()); |
|
|
handlePayBillStatusUpdate(record); |
|
|
handlePayBillStatusUpdate(record); |
|
|
} |
|
|
} |
|
|
return new ResultData(Result.SUCCESS, "订单查询成功", returnMap); |
|
|
return new ResultData(Result.SUCCESS, "订单查询成功", returnMap); |
|
|
@@ -488,7 +488,7 @@ public class WxPayBillServiceImpl implements WxPayBillService { |
|
|
Map<String, String> returnMap = WxPayment.xmlToMap(response); |
|
|
Map<String, String> returnMap = WxPayment.xmlToMap(response); |
|
|
String result_code = returnMap.get("result_code"); |
|
|
String result_code = returnMap.get("result_code"); |
|
|
if ("SUCCESS".equals(result_code)) { |
|
|
if ("SUCCESS".equals(result_code)) { |
|
|
record.setPayBillStatus(EnumPayStatus.PAY_WAY_CANCEL.getCode()); |
|
|
|
|
|
|
|
|
record.setPayBillStatus(EnumPayStatus.PAY_STATUS_CANCEL.getCode()); |
|
|
handlePayBillStatusUpdate(record); |
|
|
handlePayBillStatusUpdate(record); |
|
|
return new ResultData(Result.SUCCESS, "订单关闭成功", returnMap); |
|
|
return new ResultData(Result.SUCCESS, "订单关闭成功", returnMap); |
|
|
} else { |
|
|
} else { |
|
|
@@ -646,7 +646,7 @@ public class WxPayBillServiceImpl implements WxPayBillService { |
|
|
Date currentDate = new Date(); |
|
|
Date currentDate = new Date(); |
|
|
EnumPayStatus payStatus = EnumPayStatus.getEnum(record.getPayBillStatus()); |
|
|
EnumPayStatus payStatus = EnumPayStatus.getEnum(record.getPayBillStatus()); |
|
|
// 判断支付状态 |
|
|
// 判断支付状态 |
|
|
if (payStatus == EnumPayStatus.PAY_WAY_SUCCESS) { |
|
|
|
|
|
|
|
|
if (payStatus == EnumPayStatus.PAY_STATUS_SUCCESS) { |
|
|
// 已经是成功状态,只更新transactionId |
|
|
// 已经是成功状态,只更新transactionId |
|
|
try { |
|
|
try { |
|
|
record.setUpdateTime(currentDate); |
|
|
record.setUpdateTime(currentDate); |
|
|
@@ -658,7 +658,7 @@ public class WxPayBillServiceImpl implements WxPayBillService { |
|
|
} |
|
|
} |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
if (payStatus != EnumPayStatus.PAY_WAY_WAIT) { |
|
|
|
|
|
|
|
|
if (payStatus != EnumPayStatus.PAY_STATUS_WAIT) { |
|
|
logger.error("pay success handle, payBill " + record.getPayBillNo() + |
|
|
logger.error("pay success handle, payBill " + record.getPayBillNo() + |
|
|
"is paid success , billId : " + record.getBillId()); |
|
|
"is paid success , billId : " + record.getBillId()); |
|
|
return; |
|
|
return; |
|
|
@@ -683,7 +683,7 @@ public class WxPayBillServiceImpl implements WxPayBillService { |
|
|
updateBill.setId(record.getId()); |
|
|
updateBill.setId(record.getId()); |
|
|
updateBill.setBillId(record.getBillId()); |
|
|
updateBill.setBillId(record.getBillId()); |
|
|
updateBill.setUpdateTime(currentDate); |
|
|
updateBill.setUpdateTime(currentDate); |
|
|
updateBill.setPayBillStatus(EnumPayStatus.PAY_WAY_SUCCESS.getCode()); |
|
|
|
|
|
|
|
|
updateBill.setPayBillStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); |
|
|
updateBill.setTransactionId(transactionId); |
|
|
updateBill.setTransactionId(transactionId); |
|
|
try { |
|
|
try { |
|
|
wxPayBillMapper.updateByPrimaryKeySelective(updateBill); |
|
|
wxPayBillMapper.updateByPrimaryKeySelective(updateBill); |
|
|
@@ -709,7 +709,7 @@ public class WxPayBillServiceImpl implements WxPayBillService { |
|
|
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) |
|
|
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) |
|
|
public void handlePayBillStatusUpdate(WxPayBill record) { |
|
|
public void handlePayBillStatusUpdate(WxPayBill record) { |
|
|
// 判断支付状态 |
|
|
// 判断支付状态 |
|
|
if (record.getPayBillStatus().equals(EnumPayStatus.PAY_WAY_WAIT.getCode())) { |
|
|
|
|
|
|
|
|
if (record.getPayBillStatus().equals(EnumPayStatus.PAY_STATUS_WAIT.getCode())) { |
|
|
logger.error("pay handle, payBill " + record.getPayBillNo() + |
|
|
logger.error("pay handle, payBill " + record.getPayBillNo() + |
|
|
"is complete, billId : " + record.getBillId()); |
|
|
"is complete, billId : " + record.getBillId()); |
|
|
return; |
|
|
return; |
|
|
@@ -761,13 +761,13 @@ public class WxPayBillServiceImpl implements WxPayBillService { |
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_NOT_FOUND); |
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_NOT_FOUND); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (record.getPayBillStatus().equals(EnumPayStatus.PAY_WAY_CANCEL.getCode())) { |
|
|
|
|
|
|
|
|
if (record.getPayBillStatus().equals(EnumPayStatus.PAY_STATUS_CANCEL.getCode())) { |
|
|
// 支付订单取消 |
|
|
// 支付订单取消 |
|
|
if (record.getPayAmount() > 0) { |
|
|
if (record.getPayAmount() > 0) { |
|
|
payBillQ = new WxPayBill(); |
|
|
payBillQ = new WxPayBill(); |
|
|
payBillQ.setTenantId(bill.get("tenantId").toString()); |
|
|
payBillQ.setTenantId(bill.get("tenantId").toString()); |
|
|
payBillQ.setBillId(record.getBillId()); |
|
|
payBillQ.setBillId(record.getBillId()); |
|
|
payBillQ.setPayBillStatus(EnumPayStatus.PAY_WAY_WAIT.getCode()); |
|
|
|
|
|
|
|
|
payBillQ.setPayBillStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); |
|
|
List<WxPayBill> payBills = wxPayBillMapper.select(payBillQ); |
|
|
List<WxPayBill> payBills = wxPayBillMapper.select(payBillQ); |
|
|
for (WxPayBill payBill : payBills) { |
|
|
for (WxPayBill payBill : payBills) { |
|
|
payBillClose(appInfo, payBill); |
|
|
payBillClose(appInfo, payBill); |
|
|
@@ -775,7 +775,7 @@ public class WxPayBillServiceImpl implements WxPayBillService { |
|
|
} |
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
// 支付订单成功? |
|
|
// 支付订单成功? |
|
|
if (updateBill.getPayBillStatus().equals(EnumPayStatus.PAY_WAY_SUCCESS.getCode())) { |
|
|
|
|
|
|
|
|
if (updateBill.getPayBillStatus().equals(EnumPayStatus.PAY_STATUS_SUCCESS.getCode())) { |
|
|
if (StringUtils.isBlank(updateBill.getTransactionId())) { |
|
|
if (StringUtils.isBlank(updateBill.getTransactionId())) { |
|
|
// 回调已设置成功 |
|
|
// 回调已设置成功 |
|
|
// 继续修改订单状态 |
|
|
// 继续修改订单状态 |
|
|
@@ -783,7 +783,7 @@ public class WxPayBillServiceImpl implements WxPayBillService { |
|
|
// 回调异常 |
|
|
// 回调异常 |
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), "transactionId未获取"); |
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), "transactionId未获取"); |
|
|
} |
|
|
} |
|
|
} else if (updateBill.getPayBillStatus().equals(EnumPayStatus.PAY_WAY_WAIT.getCode())) { |
|
|
|
|
|
|
|
|
} else if (updateBill.getPayBillStatus().equals(EnumPayStatus.PAY_STATUS_WAIT.getCode())) { |
|
|
// 回调未返回,主动检查支付订单状态 |
|
|
// 回调未返回,主动检查支付订单状态 |
|
|
try { |
|
|
try { |
|
|
record.setPayBillNo(String.valueOf(record.getId())); |
|
|
record.setPayBillNo(String.valueOf(record.getId())); |
|
|
@@ -821,7 +821,7 @@ public class WxPayBillServiceImpl implements WxPayBillService { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 修改账单状态 |
|
|
// 修改账单状态 |
|
|
if (record.getPayBillStatus().equals(EnumPayStatus.PAY_WAY_SUCCESS.getCode())) { |
|
|
|
|
|
|
|
|
if (record.getPayBillStatus().equals(EnumPayStatus.PAY_STATUS_SUCCESS.getCode())) { |
|
|
try { |
|
|
try { |
|
|
int _count = wxBillAllService.updateBill(bill); |
|
|
int _count = wxBillAllService.updateBill(bill); |
|
|
if (_count > 1) { |
|
|
if (_count > 1) { |
|
|
|