|
|
|
@@ -349,13 +349,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// TODO |
|
|
|
|
|
|
|
/** |
|
|
|
* 微信订单查询 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public ResultData payOrderQuery(WxAppinfo appInfo, WxPayOrder record) { |
|
|
|
private String wechatPayOrderQuery(WxAppinfo appInfo, WxPayOrder record) { |
|
|
|
// get payAccount |
|
|
|
WxPayAccount payAccount = wxPayAccountMapper.selectByPrimaryKey(appInfo.getPayId()); |
|
|
|
if (payAccount.getType() == EnumPayMode.MCH.getCode()) { |
|
|
|
@@ -372,49 +367,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { |
|
|
|
payOrderQ.setSign(WxPayment.createSign(map, payAccount.getApiKey())); |
|
|
|
map = BeanUtils.toStringMap(payOrderQ); |
|
|
|
String response = WxPay.orderQuery(map); |
|
|
|
|
|
|
|
logger.info("pay order query, " + payOrderQ.toString() + ", response: " + response); |
|
|
|
Map<String, String> returnMap = WxPayment.xmlToMap(response); |
|
|
|
String result_code = returnMap.get("result_code"); |
|
|
|
if ("SUCCESS".equals(result_code)) { |
|
|
|
String trade_state = returnMap.get("trade_state"); |
|
|
|
//SUCCESS—支付成功 |
|
|
|
//REFUND—转入退款 |
|
|
|
//NOTPAY—未支付 |
|
|
|
//CLOSED—已关闭 |
|
|
|
//REVOKED—已撤销(刷卡支付) |
|
|
|
//USERPAYING--用户支付中 |
|
|
|
//PAYERROR--支付失败(其他原因,如银行返回失败) |
|
|
|
if ("SUCCESS".equals(trade_state)) { |
|
|
|
record.setPayOrderStatus(EnumPayStatus.PAY_WAY_SUCCESS.getCode()); |
|
|
|
handlePayOrderStatusUpdate(record); |
|
|
|
} else if ("USERPAYING".equals(trade_state)) { |
|
|
|
//record.setPayOrderStatus(EnumPayStatus.PAY_WAY_WAIT.getCode()); |
|
|
|
//handlePayOrderStatusUpdate(record); |
|
|
|
} else { |
|
|
|
record.setPayOrderStatus(EnumPayStatus.PAY_WAY_FAIL.getCode()); |
|
|
|
handlePayOrderStatusUpdate(record); |
|
|
|
} |
|
|
|
return new ResultData(Result.SUCCESS, "订单查询成功", returnMap); |
|
|
|
} else { |
|
|
|
String errMsg = ""; |
|
|
|
JSONObject errObj = errorMapQuery.getJSONObject(result_code); |
|
|
|
if (errObj != null) { |
|
|
|
errMsg = errObj.toJSONString(); |
|
|
|
record.setFailReason(errMsg); |
|
|
|
} else { |
|
|
|
errMsg = returnMap.get("return_msg"); |
|
|
|
record.setFailReason(errMsg); |
|
|
|
} |
|
|
|
record.setUpdateTime(new Date()); |
|
|
|
try { |
|
|
|
wxPayOrderMapper.updateByPrimaryKeySelective(record); |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error("pay order update error: " + record.toString()); |
|
|
|
throw new MallinkException(ErrorCode.DB_FAIL); |
|
|
|
} |
|
|
|
return new ResultData(ErrorCode.PAY_ORDER_ERROR.getCode(), errMsg, returnMap); |
|
|
|
} |
|
|
|
return response; |
|
|
|
} catch (RuntimeException e) { |
|
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), e.getMessage()); |
|
|
|
} catch (Exception e) { |
|
|
|
@@ -438,49 +391,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { |
|
|
|
map = BeanUtils.toStringMap(payOrderSQ); |
|
|
|
|
|
|
|
String response = WxPay.orderQuery(map); |
|
|
|
|
|
|
|
logger.info("pay order query, " + payOrderSQ.toString() + ", response: " + response); |
|
|
|
Map<String, String> returnMap = WxPayment.xmlToMap(response); |
|
|
|
String result_code = returnMap.get("result_code"); |
|
|
|
if ("SUCCESS".equals(result_code)) { |
|
|
|
String trade_state = returnMap.get("trade_state"); |
|
|
|
//SUCCESS—支付成功 |
|
|
|
//REFUND—转入退款 |
|
|
|
//NOTPAY—未支付 |
|
|
|
//CLOSED—已关闭 |
|
|
|
//REVOKED—已撤销(刷卡支付) |
|
|
|
//USERPAYING--用户支付中 |
|
|
|
//PAYERROR--支付失败(其他原因,如银行返回失败) |
|
|
|
if ("SUCCESS".equals(trade_state)) { |
|
|
|
record.setPayOrderStatus(EnumPayStatus.PAY_WAY_SUCCESS.getCode()); |
|
|
|
handlePayOrderStatusUpdate(record); |
|
|
|
} else if ("USERPAYING".equals(trade_state)) { |
|
|
|
//record.setPayOrderStatus(EnumPayStatus.PAY_WAY_WAIT.getCode()); |
|
|
|
//handlePayOrderStatusUpdate(record); |
|
|
|
} else { |
|
|
|
record.setPayOrderStatus(EnumPayStatus.PAY_WAY_FAIL.getCode()); |
|
|
|
handlePayOrderStatusUpdate(record); |
|
|
|
} |
|
|
|
return new ResultData(Result.SUCCESS, "订单查询成功", returnMap); |
|
|
|
} else { |
|
|
|
String errMsg = ""; |
|
|
|
JSONObject errObj = errorMapQuery.getJSONObject(result_code); |
|
|
|
if (errObj != null) { |
|
|
|
errMsg = errObj.toJSONString(); |
|
|
|
record.setFailReason(errMsg); |
|
|
|
} else { |
|
|
|
errMsg = returnMap.get("return_msg"); |
|
|
|
record.setFailReason(errMsg); |
|
|
|
} |
|
|
|
record.setUpdateTime(new Date()); |
|
|
|
try { |
|
|
|
wxPayOrderMapper.updateByPrimaryKeySelective(record); |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error("pay order update error: " + record.toString()); |
|
|
|
throw new MallinkException(ErrorCode.DB_FAIL); |
|
|
|
} |
|
|
|
return new ResultData(ErrorCode.PAY_ORDER_ERROR.getCode(), errMsg, returnMap); |
|
|
|
} |
|
|
|
return response; |
|
|
|
} catch (RuntimeException e) { |
|
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), e.getMessage()); |
|
|
|
} catch (Exception e) { |
|
|
|
@@ -490,10 +401,65 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 微信关闭支付订单 |
|
|
|
* 微信订单查询 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public ResultData payOrderClose(WxAppinfo appInfo, WxPayOrder record) { |
|
|
|
public ResultData payOrderQuery(WxAppinfo appInfo, WxPayOrder record) { |
|
|
|
try { |
|
|
|
String response = wechatPayOrderQuery(appInfo, record); |
|
|
|
|
|
|
|
logger.info("pay order query, " + record.toString() + ", response: " + response); |
|
|
|
Map<String, String> returnMap = WxPayment.xmlToMap(response); |
|
|
|
String result_code = returnMap.get("result_code"); |
|
|
|
if ("SUCCESS".equals(result_code)) { |
|
|
|
String trade_state = returnMap.get("trade_state"); |
|
|
|
//SUCCESS—支付成功 |
|
|
|
//REFUND—转入退款 |
|
|
|
//NOTPAY—未支付 |
|
|
|
//CLOSED—已关闭 |
|
|
|
//REVOKED—已撤销(刷卡支付) |
|
|
|
//USERPAYING--用户支付中 |
|
|
|
//PAYERROR--支付失败(其他原因,如银行返回失败) |
|
|
|
if ("SUCCESS".equals(trade_state)) { |
|
|
|
record.setPayOrderStatus(EnumPayStatus.PAY_WAY_SUCCESS.getCode()); |
|
|
|
handlePayOrderStatusUpdate(record); |
|
|
|
} else if ("USERPAYING".equals(trade_state)) { |
|
|
|
record.setPayOrderStatus(EnumPayStatus.PAY_WAY_WAIT.getCode()); |
|
|
|
handlePayOrderStatusUpdate(record); |
|
|
|
} else { |
|
|
|
record.setPayOrderStatus(EnumPayStatus.PAY_WAY_FAIL.getCode()); |
|
|
|
handlePayOrderStatusUpdate(record); |
|
|
|
} |
|
|
|
return new ResultData(Result.SUCCESS, "订单查询成功", returnMap); |
|
|
|
} else { |
|
|
|
String errMsg = ""; |
|
|
|
JSONObject errObj = errorMapQuery.getJSONObject(result_code); |
|
|
|
if (errObj != null) { |
|
|
|
errMsg = errObj.toJSONString(); |
|
|
|
record.setFailReason(errMsg); |
|
|
|
} else { |
|
|
|
errMsg = returnMap.get("return_msg"); |
|
|
|
record.setFailReason(errMsg); |
|
|
|
} |
|
|
|
record.setUpdateTime(new Date()); |
|
|
|
try { |
|
|
|
wxPayOrderMapper.updateByPrimaryKeySelective(record); |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error("pay order update error: " + record.toString()); |
|
|
|
throw new MallinkException(ErrorCode.DB_FAIL); |
|
|
|
} |
|
|
|
return new ResultData(ErrorCode.PAY_ORDER_ERROR.getCode(), errMsg, returnMap); |
|
|
|
} |
|
|
|
} catch (MallinkException e) { |
|
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), e.getMessage()); |
|
|
|
} catch (RuntimeException e) { |
|
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), e.getMessage()); |
|
|
|
} catch (Exception e) { |
|
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), e.getMessage()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private String wechatPayOrderClose(WxAppinfo appInfo, WxPayOrder record) { |
|
|
|
// get payAccount |
|
|
|
WxPayAccount payAccount = wxPayAccountMapper.selectByPrimaryKey(appInfo.getPayId()); |
|
|
|
if (payAccount.getType() == EnumPayMode.MCH.getCode()) { |
|
|
|
@@ -510,32 +476,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { |
|
|
|
payOrderC.setSign(WxPayment.createSign(map, payAccount.getApiKey())); |
|
|
|
map = BeanUtils.toStringMap(payOrderC); |
|
|
|
String response = WxPay.closeOrder(map); |
|
|
|
|
|
|
|
logger.info("pay order close, " + payOrderC.toString() + ", response: " + response); |
|
|
|
Map<String, String> returnMap = WxPayment.xmlToMap(response); |
|
|
|
String result_code = returnMap.get("result_code"); |
|
|
|
if ("SUCCESS".equals(result_code)) { |
|
|
|
record.setPayOrderStatus(EnumPayStatus.PAY_WAY_CANCEL.getCode()); |
|
|
|
handlePayOrderStatusUpdate(record); |
|
|
|
return new ResultData(Result.SUCCESS, "订单关闭成功", returnMap); |
|
|
|
} else { |
|
|
|
String errMsg = ""; |
|
|
|
JSONObject errObj = errorMapClose.getJSONObject(result_code); |
|
|
|
if (errObj != null) { |
|
|
|
errMsg = errObj.toJSONString(); |
|
|
|
} else { |
|
|
|
errMsg = returnMap.get("return_msg"); |
|
|
|
} |
|
|
|
record.setFailReason(errMsg); |
|
|
|
record.setUpdateTime(new Date()); |
|
|
|
try { |
|
|
|
wxPayOrderMapper.updateByPrimaryKeySelective(record); |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error("pay order update error: " + record.toString()); |
|
|
|
throw new MallinkException(ErrorCode.DB_FAIL); |
|
|
|
} |
|
|
|
return new ResultData(ErrorCode.PAY_ORDER_ERROR.getCode(), errObj.toJSONString(), returnMap); |
|
|
|
} |
|
|
|
return response; |
|
|
|
} catch (RuntimeException e) { |
|
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), e.getMessage()); |
|
|
|
} catch (Exception e) { |
|
|
|
@@ -558,32 +499,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { |
|
|
|
payOrderSC.setSign(WxPayment.createSignHMAC(map, payAccount.getApiKey())); |
|
|
|
map = BeanUtils.toStringMap(payOrderSC); |
|
|
|
String response = WxPay.closeOrder(map); |
|
|
|
|
|
|
|
logger.info("pay order close, " + payOrderSC.toString() + ", response: " + response); |
|
|
|
Map<String, String> returnMap = WxPayment.xmlToMap(response); |
|
|
|
String result_code = returnMap.get("result_code"); |
|
|
|
if ("SUCCESS".equals(result_code)) { |
|
|
|
record.setPayOrderStatus(EnumPayStatus.PAY_WAY_CANCEL.getCode()); |
|
|
|
handlePayOrderStatusUpdate(record); |
|
|
|
return new ResultData(Result.SUCCESS, "订单关闭成功", returnMap); |
|
|
|
} else { |
|
|
|
String errMsg = ""; |
|
|
|
JSONObject errObj = errorMapClose.getJSONObject(result_code); |
|
|
|
if (errObj != null) { |
|
|
|
errMsg = errObj.toJSONString(); |
|
|
|
} else { |
|
|
|
errMsg = returnMap.get("return_msg"); |
|
|
|
} |
|
|
|
record.setFailReason(errMsg); |
|
|
|
record.setUpdateTime(new Date()); |
|
|
|
try { |
|
|
|
wxPayOrderMapper.updateByPrimaryKeySelective(record); |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error("pay order update error: " + record.toString()); |
|
|
|
throw new MallinkException(ErrorCode.DB_FAIL); |
|
|
|
} |
|
|
|
return new ResultData(ErrorCode.PAY_ORDER_ERROR.getCode(), errMsg, returnMap); |
|
|
|
} |
|
|
|
return response; |
|
|
|
} catch (RuntimeException e) { |
|
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), e.getMessage()); |
|
|
|
} catch (Exception e) { |
|
|
|
@@ -592,6 +508,47 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 微信关闭支付订单 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public ResultData payOrderClose(WxAppinfo appInfo, WxPayOrder record) { |
|
|
|
|
|
|
|
try { |
|
|
|
String response = wechatPayOrderClose(appInfo, record); |
|
|
|
|
|
|
|
logger.info("pay order close, " + record.toString() + ", response: " + response); |
|
|
|
Map<String, String> returnMap = WxPayment.xmlToMap(response); |
|
|
|
String result_code = returnMap.get("result_code"); |
|
|
|
if ("SUCCESS".equals(result_code)) { |
|
|
|
record.setPayOrderStatus(EnumPayStatus.PAY_WAY_CANCEL.getCode()); |
|
|
|
handlePayOrderStatusUpdate(record); |
|
|
|
return new ResultData(Result.SUCCESS, "订单关闭成功", returnMap); |
|
|
|
} else { |
|
|
|
String errMsg = ""; |
|
|
|
JSONObject errObj = errorMapClose.getJSONObject(result_code); |
|
|
|
if (errObj != null) { |
|
|
|
errMsg = errObj.toJSONString(); |
|
|
|
} else { |
|
|
|
errMsg = returnMap.get("return_msg"); |
|
|
|
} |
|
|
|
record.setFailReason(errMsg); |
|
|
|
record.setUpdateTime(new Date()); |
|
|
|
try { |
|
|
|
wxPayOrderMapper.updateByPrimaryKeySelective(record); |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error("pay order update error: " + record.toString()); |
|
|
|
throw new MallinkException(ErrorCode.DB_FAIL); |
|
|
|
} |
|
|
|
return new ResultData(ErrorCode.PAY_ORDER_ERROR.getCode(), errMsg, returnMap); |
|
|
|
} |
|
|
|
} catch (RuntimeException e) { |
|
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), e.getMessage()); |
|
|
|
} catch (Exception e) { |
|
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), e.getMessage()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 提供微信支付回调调用 |
|
|
|
@@ -781,6 +738,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { |
|
|
|
@Override |
|
|
|
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) |
|
|
|
public void handlePayOrderStatusUpdate(WxPayOrder record) { |
|
|
|
// 只支持取消 payOrder |
|
|
|
// 判断支付状态 |
|
|
|
if (record.getPayOrderStatus() == EnumPayStatus.PAY_WAY_WAIT.getCode()) { |
|
|
|
logger.error("pay handle, payOrder " + record.getPayOrderNo() + |
|
|
|
@@ -797,45 +755,91 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { |
|
|
|
logger.error("pay handle, order " + record.getOrderId() + " not found , payOrderGid : " + record.getPayOrderNo()); |
|
|
|
throw new MallinkException(ErrorCode.USER_IS_EMPTY); |
|
|
|
} |
|
|
|
// 1. get appinfo |
|
|
|
WxAppinfo appInfo = null; |
|
|
|
WxAppinfo appinfoQ = new WxAppinfo(); |
|
|
|
appinfoQ.setTenantId(order.getTenantId()); |
|
|
|
appinfoQ.setType(EnumAppType.C.getCode()); |
|
|
|
List<WxAppinfo> appList = wxAppinfoMapper.select(appinfoQ); |
|
|
|
if (appList.size() > 0) { |
|
|
|
appInfo = appList.get(0); |
|
|
|
} |
|
|
|
|
|
|
|
Date currentDate = new Date(); |
|
|
|
if (record.getId() > 0) { |
|
|
|
// 修改支付订单状态 |
|
|
|
// 订单金额为0时,支付订单不创建,直接更改订单状态 |
|
|
|
WxPayOrder updateOrder = new WxPayOrder(); |
|
|
|
updateOrder.setId(record.getId()); |
|
|
|
updateOrder.setOrderId(record.getOrderId()); |
|
|
|
updateOrder.setUpdateTime(currentDate); |
|
|
|
updateOrder.setPayOrderStatus(record.getPayOrderStatus()); |
|
|
|
updateOrder.setPayTimeEnd(currentDate); |
|
|
|
updateOrder.setFailReason(record.getFailReason()); |
|
|
|
WxPayOrder updateOrder = null; |
|
|
|
|
|
|
|
// 检查支付订单状态 |
|
|
|
WxPayOrder payOrderQ = new WxPayOrder(); |
|
|
|
payOrderQ.setId(record.getId()); |
|
|
|
payOrderQ.setOrderId(record.getOrderId()); |
|
|
|
try { |
|
|
|
wxPayOrderMapper.updateByPrimaryKeySelective(updateOrder); |
|
|
|
updateOrder = wxPayOrderMapper.selectOne(payOrderQ); |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error(e.getMessage()); |
|
|
|
throw new MallinkException(ErrorCode.DB_FAIL); |
|
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_NOT_FOUND); |
|
|
|
} |
|
|
|
|
|
|
|
if (record.getPayOrderStatus() == EnumPayStatus.PAY_WAY_CANCEL.getCode()) { |
|
|
|
// 支付订单取消 |
|
|
|
if (record.getPayAmount() > 0) { |
|
|
|
// 1. get appinfo |
|
|
|
WxAppinfo appInfo = null; |
|
|
|
WxAppinfo appinfoQ = new WxAppinfo(); |
|
|
|
appinfoQ.setTenantId(order.getTenantId()); |
|
|
|
appinfoQ.setType(EnumAppType.C.getCode()); |
|
|
|
List<WxAppinfo> appList = wxAppinfoMapper.select(appinfoQ); |
|
|
|
if (appList.size() > 0) { |
|
|
|
appInfo = appList.get(0); |
|
|
|
} |
|
|
|
WxPayOrder payOrderQ = new WxPayOrder(); |
|
|
|
payOrderQ = new WxPayOrder(); |
|
|
|
payOrderQ.setTenantId(order.getTenantId()); |
|
|
|
payOrderQ.setOrderId(record.getOrderId()); |
|
|
|
payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_WAY_WAIT.getCode()); |
|
|
|
List<WxPayOrder> payOrders = wxPayOrderMapper.select(payOrderQ); |
|
|
|
for (WxPayOrder payOrder : payOrders) { |
|
|
|
payOrderClose(appInfo, payOrder); |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
// 支付订单成功? |
|
|
|
if (updateOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_WAY_SUCCESS.getCode())) { |
|
|
|
if (StringUtils.isBlank(updateOrder.getTransactionId())) { |
|
|
|
// 回调已设置成功 |
|
|
|
// 继续修改订单状态 |
|
|
|
} else { |
|
|
|
// 回调异常 |
|
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), "transactionId未获取"); |
|
|
|
} |
|
|
|
} else if (updateOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_WAY_WAIT.getCode())) { |
|
|
|
// 回调未返回,主动检查支付订单状态 |
|
|
|
try { |
|
|
|
String response = wechatPayOrderQuery(appInfo, record); |
|
|
|
|
|
|
|
logger.info("pay order query, " + record.toString() + ", response: " + response); |
|
|
|
Map<String, String> returnMap = WxPayment.xmlToMap(response); |
|
|
|
String result_code = returnMap.get("result_code"); |
|
|
|
if ("SUCCESS".equals(result_code)) { |
|
|
|
String trade_state = returnMap.get("trade_state"); |
|
|
|
//SUCCESS—支付成功 |
|
|
|
//REFUND—转入退款 |
|
|
|
//NOTPAY—未支付 |
|
|
|
//CLOSED—已关闭 |
|
|
|
//REVOKED—已撤销(刷卡支付) |
|
|
|
//USERPAYING--用户支付中 |
|
|
|
//PAYERROR--支付失败(其他原因,如银行返回失败) |
|
|
|
if ("SUCCESS".equals(trade_state)) { |
|
|
|
// 查询支付订单 -- 已支付 |
|
|
|
// 继续更改状态 |
|
|
|
} else { |
|
|
|
// 支付订单未成功,返回异常 |
|
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), "支付订单未成功"); |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (MallinkException e) { |
|
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), e.getMessage()); |
|
|
|
} catch (RuntimeException e) { |
|
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), e.getMessage()); |
|
|
|
} catch (Exception e) { |
|
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), e.getMessage()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
// 支付订单未创建, 订单金额不为0时, 返回异常 |
|
|
|
if (order.getPayment() > 0) { |
|
|
|
throw new MallinkException(ErrorCode.PAY_ORDER_NOT_FOUND); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|