From a676467162f48cc413c282d5648bb8a30d829dfc Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Thu, 11 Jun 2020 20:34:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0@Transactional=20=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E8=87=AA=E8=B0=83=E7=94=A8=E4=B8=8D=E7=94=9F=E6=95=88?= =?UTF-8?q?=EF=BC=8CAop=20proxy=20bean=E6=B3=A8=E5=85=A5=E4=B8=8D=E7=94=9F?= =?UTF-8?q?=E6=95=88=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxPayOrderServiceImpl.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index b359df6fe..cbc358b84 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -35,6 +35,9 @@ import java.util.*; public class WxPayOrderServiceImpl implements WxPayOrderService { private final Logger logger = LoggerFactory.getLogger(this.getClass()); + @Autowired + WxPayOrderServiceImpl wxPayOrderServiceImpl; + @Autowired WxAppinfoMapper wxAppinfoMapper; @@ -115,8 +118,9 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { "\"REQUIRE_POST_METHOD\":{\"detail\":\"请使用post方法\",\"reason\":\"未使用post传递参数\",\"resolution\":\"请检查请求参数是否通过post方法提交\"}," + "\"XML_FORMAT_ERROR\":{\"detail\":\"XML格式错误\t\",\"reason\":\"XML格式错误\",\"reason\":\"请检查XML参数格式是否正确\"}}"); + //方法必须为public AopContext.currentProxy() @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - private void handleSuccessOrder(WxPayOrder oldRecord,WxOrder order,Map retMap) { + public void handleSuccessOrder(WxPayOrder oldRecord,WxOrder order,Map retMap) { Date curDate = new Date(); if (oldRecord.getPayOrderStatus() != EnumPayStatus.PAY_STATUS_SUCCESS.getCode()) { //更新wxPayOrder @@ -340,7 +344,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { throw new MallinkException(ErrorCode.PAY_ORDER_PAYING.getCode(),"订单微信查询支付状态失败!"); } //如果是支付错误,可以重新支付 - }else if(oldRecord.getPayOrderStatus()==EnumPayStatus.PAY_STATUS_FAIL.getCode()) { + }else if(oldRecord.getPayOrderStatus()==EnumPayStatus.PAY_STATUS_FAIL.getCode()|| + oldRecord.getPayOrderStatus()==EnumPayStatus.PAY_STATUS_NOTPAY.getCode()) { oldRecord.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); //重新设置支付no Long payno = idworker.nextId(); @@ -376,7 +381,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { // 支付单号 record.setPayOrderNo(payOrderNo); record.setPayAmount(order.getPayment()); - record.setPayVendor(EnumPayWay.PAY_WAY_WEAPP.getCode()); + record.setPayFrom(payWay.getCode()); + record.setPayVendor(payWay.getCode()); record.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); record.setShare(isShare.getCode()); if (isShare == EnumPayShare.YES) { @@ -555,8 +561,10 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } } } catch (RuntimeException e) { + logger.error("createwxpayorder error:",e); throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), e.getMessage()); } catch (Exception e) { + logger.error("createwxpayorder error:",e); throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), e.getMessage()); } }