|
@@ -108,6 +108,11 @@ public class AlipayCallBackController {
|
|
|
responseWrite(response,"fail");
|
|
|
return;
|
|
|
}
|
|
|
+ if (order.getOrderStatus() == PayOrderStatusEnum.SUCCESS.getValue()) {
|
|
|
+ logger.info("支付订单已成功,消息忽略,bizId:" + bizId + ",tradeNo:" + tradeNo);
|
|
|
+ responseWrite(response,"true");
|
|
|
+ }
|
|
|
+
|
|
|
if(order.getTransactionAmount() != totalAmount){
|
|
|
logger.error("回调金额与订单金额不一致");
|
|
|
responseWrite(response,"fail");
|
|
@@ -125,22 +130,22 @@ public class AlipayCallBackController {
|
|
|
// payOrder.setChannelNo(channelNo);
|
|
|
payOrder.setOrderStatus(PayOrderStatusEnum.SUCCESS.getValue());
|
|
|
|
|
|
+ // 订单支付状态单独保存
|
|
|
+ LambdaUpdateWrapper<PayOrder> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ updateWrapper.eq(PayOrder::getOrderStatus, PayOrderStatusEnum.WAIT.getValue());
|
|
|
+ updateWrapper.eq(PayOrder::getOrderId, order.getOrderId());
|
|
|
+ boolean ret = payOrderService.update(payOrder, updateWrapper);
|
|
|
+ if (!ret) {
|
|
|
+ LogUtil.error(logger, "支付回调消息更新支付单状态失败 orderId:" + order.getOrderId());
|
|
|
+ responseWrite(response,"fail");
|
|
|
+ }
|
|
|
try {
|
|
|
- // 订单支付状态单独保存
|
|
|
- LambdaUpdateWrapper<PayOrder> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
- updateWrapper.eq(PayOrder::getOrderStatus, PayOrderStatusEnum.WAIT.getValue());
|
|
|
- updateWrapper.eq(PayOrder::getOrderId, order.getOrderId());
|
|
|
- boolean ret = payOrderService.update(payOrder, updateWrapper);
|
|
|
- if (!ret) {
|
|
|
- throw new ServiceException("支付订单更新失败,orderId:" + order.getOrderId());
|
|
|
- }
|
|
|
-
|
|
|
// 更新订单,单个事务处理
|
|
|
logger.info("支付回调消息更新成功 orderId:" + order.getOrderId());
|
|
|
walletService.payOrderStatusHandle(payOrder);
|
|
|
responseWrite(response,"success");
|
|
|
} catch (Exception e){
|
|
|
- LogUtil.error(logger, e, "支付回调消息更新失败 orderId:" + order.getOrderId());
|
|
|
+ LogUtil.error(logger, e, "支付回调消息处理异常 orderId:" + order.getOrderId());
|
|
|
responseWrite(response,"fail");
|
|
|
}
|
|
|
}
|