TRX před 1 rokem
rodič
revize
bf37565b7c

+ 19 - 21
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/payment/PayCallService.java

@@ -113,9 +113,11 @@ public class PayCallService extends SuperService {
             return ResultContent.buildFail(msg);
         }
 
+        String paymentNo = entity.getPaymentNo();
         log.info("开始时间:{}", DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternyyyySSS));
-        log.info("渠道: {} {}", paymentTypes, entity.getPaymentNo());
+        log.info("渠道: {} {}", paymentTypes, paymentNo);
 
+        String payError = "支付失败";
         int maxTime = 5 * 1000;
         int stepTime = 110;
         boolean b = false;
@@ -132,23 +134,20 @@ public class PayCallService extends SuperService {
             }
 
             if (paymentType.isPayIsAsync()) {
-                boolean isPaying = orderIsPaying(entity.getPaymentNo(), paymentType);
-                if (isPaying) {
-                    AtomicInteger atomicInteger = new AtomicInteger(0);
-                    while (atomicInteger.get() <= maxTime) {
-                        isPaying = orderIsPaying(entity.getPaymentNo(), paymentType);
-                        log.info("等待:{} {} {}", atomicInteger.get(), isPaying, paymentType);
-                        if (!isPaying) {
-                            entity = expenseFlowDao.findTopById(entity.getId());
-                            break;
-                        }
-                        try {
-                            TimeUnit.MILLISECONDS.sleep(stepTime);
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-                        atomicInteger.addAndGet(stepTime);
+                AtomicInteger atomicInteger = new AtomicInteger(0);
+                while (atomicInteger.get() <= maxTime) {
+                    boolean isPaying = orderIsPaying(paymentNo, paymentType);
+                    log.info("等待:{} 支付中:{} {}", atomicInteger.get(), isPaying, paymentType);
+                    if (!isPaying) {
+                        entity = expenseFlowDao.findTopById(entity.getId());
+                        break;
                     }
+                    try {
+                        TimeUnit.MILLISECONDS.sleep(stepTime);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                    atomicInteger.addAndGet(stepTime);
                 }
             }
 
@@ -162,10 +161,9 @@ public class PayCallService extends SuperService {
         log.info("支付: {}", b);
         // 所有的渠道都支付失败
         if (!b && paymentTypes.size() > 1) {
-            String msg = "支付失败";
             entity.setPaymentStatus("支付失败");
             entity.setIsPaySuccess(Boolean.FALSE);
-            entity.setPayRemark(msg);
+            entity.setPayRemark(payError);
             entity.setOrderType(OrderState.PAID_ERROR);
             entity.setIsPaid(Boolean.TRUE);
             expenseFlowDao.save(entity);
@@ -396,10 +394,10 @@ public class PayCallService extends SuperService {
                 paymentProcess.setPayRemark("支付失败");
                 paymentProcess.setIsPaying(Boolean.FALSE);
             }
-            // 订单支付流程数据
-            paymentProcessDao.save(paymentProcess);
             // 订单数据
             expenseFlowDao.save(entity);
+            // 订单支付流程数据
+            paymentProcessDao.save(paymentProcess);
         }
         return ResultContent.buildSuccess();
     }