Explorar o código

修复cuspay支付单异常问题

zhh %!s(int64=3) %!d(string=hai) anos
pai
achega
8eaf2c85d5

+ 6 - 9
kmall-admin/src/main/java/com/kmall/admin/cuspay/biz/ali/AliCusDeclareBiz.java

@@ -82,7 +82,7 @@ public class AliCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
      * 海关报关接口
      */
     @Override
-    @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
+    @Transactional(propagation = Propagation.NOT_SUPPORTED)
     public void biz(Map<String, Object> params) {
         limit = Integer.parseInt(environment.getProperty("db.ali.declare.limit"));
         count = Integer.parseInt(environment.getProperty("db.ali.declare.count"));
@@ -148,10 +148,7 @@ public class AliCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
         try {
             addAliCbPayDoc(aliCbPayDoc);
         } catch (Exception e) {
-            logger.error("支付宝支付单信息写入数据库失败");
-            logger.error(e.getMessage());
-            // 手动回滚事务
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            logger.error("支付宝支付单信息写入数据库失败:" + e.getMessage());
             return;
         }
         logger.info("支付宝支付单信息写入数据库结束");
@@ -172,6 +169,8 @@ public class AliCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
             aliCbPayDoc.setResultCode("FAIL");
             aliCbPayDoc.setDetailErrorCode("partner为【" + aliCbPayDoc.getPartner() + "】的商户支付配置信息不存在");
             aliCbPayDocService.updateAliCbPay(aliCbPayDoc);
+
+            return;
         }
 
         if (merchPayCfg.getMerchWxApiKey() == null) {
@@ -179,6 +178,8 @@ public class AliCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
             aliCbPayDoc.setResultCode(AliContants.ERROR_NO_INFOMATION);
             aliCbPayDoc.setDetailErrorCode("appid为【" + aliCbPayDoc.getPartner() + "】的商户支付信息api密钥为空");
             aliCbPayDocService.updateAliCbPay(aliCbPayDoc);
+
+            return;
         }
         //设置商户配置信息
         builder.merchPay(merchPayCfg);
@@ -288,8 +289,6 @@ public class AliCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
             }
         } catch (Exception e) {
             logger.error("持久化商户通知数据异常", e);
-            // 手动回滚事务
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return;
         }
         // 存储异常记录
@@ -304,8 +303,6 @@ public class AliCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
             }
         } catch (Exception e) {
             logger.error("持久化支付申报异常信息数据失败data:" + errors, e);
-            // 手动回滚事务
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return;
         }
         logger.info("支付宝支付报关结束");

+ 2 - 11
kmall-admin/src/main/java/com/kmall/admin/cuspay/biz/wx/WxCusDeclareBiz.java

@@ -89,7 +89,7 @@ public class WxCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
      * 海关报关接口
      */
     @Override
-    @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
+    @Transactional(propagation = Propagation.NOT_SUPPORTED)
     public void biz(Map<String, Object> params) {
         // 读取配置文件参数
         limit = Integer.parseInt(environment.getProperty("db.wx.declare.limit"));
@@ -177,10 +177,7 @@ public class WxCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
         try {
             addWxCbPayDoc(wxCbPayDoc);
         } catch (Exception e) {
-            logger.error("微信支付单信息写入数据库失败");
-            logger.error(e.getMessage());
-            // 手动回滚事务
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            logger.error("微信支付单信息写入数据库失败:" + e.getMessage());
             return;
         }
         logger.info("微信支付单信息写入数据库结束");
@@ -342,8 +339,6 @@ public class WxCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
             wxCbPayDocService.updateWxCbPay(wxCbPayDoc);
         } catch (Exception e) {
             logger.error("更新支付单证写入数据库信息状态异常", e);
-            // 手动回滚事务
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return;
         }
         merchNotis.add(merchNoti);
@@ -358,8 +353,6 @@ public class WxCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
             }
         } catch (Exception e) {
             logger.error("持久化商户通知数据异常", e);
-            // 手动回滚事务
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return;
         }
         //存储异常记录
@@ -373,8 +366,6 @@ public class WxCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
             }
         } catch (Exception e) {
             logger.error("持久化支付申报异常信息数据失败data:" + errors, e);
-            // 手动回滚事务
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return;
         }
     }