Kaynağa Gözat

自动退款之前再查询一次缴费保存状态。

lighter 3 yıl önce
ebeveyn
işleme
8fb5371d9b

+ 1 - 1
pom.xml

@@ -10,7 +10,7 @@
     </parent>
     <groupId>thyyxxk</groupId>
     <artifactId>wxservice-server</artifactId>
-    <version>7.0</version>
+    <version>7.1</version>
     <name>wxservice-server</name>
     <description>server for wxservice-web</description>
 

+ 22 - 0
src/main/java/thyyxxk/wxservice_server/service/SavePayResultService.java

@@ -85,6 +85,17 @@ public class SavePayResultService {
             dao.updateSuccessHisStatus(order.getTradeNo());
             return ResultVoUtil.success("保存挂号信息成功。");
         }
+
+        template = new RestTemplate();
+        response = template.postForObject(hrgApiUrl + "/getPayStatusForRegistration",
+                obj, QueryMzPayStatusResponse.class);
+        hasSaved = 0;
+        if (null != response && response.getResultCode() == 0) {
+            hasSaved = response.getPayStatus();
+        }
+        if (hasSaved == 1) {
+            return ResultVoUtil.success("保存挂号信息成功。");
+        }
         ResultVo<String> refund = refundService.autoRefund(order.getTradeNo(), "保存挂号信息失败,自动退款。");
         log.info("【订单号:{}】保存挂号信息失败,自动退款结果:{}", order.getTradeNo(), refund);
         if (null != refund && refund.getCode() == ExceptionEnum.SUCCESS.getCode()) {
@@ -132,6 +143,17 @@ public class SavePayResultService {
             dao.updateSuccessHisStatus(order.getTradeNo());
             return ResultVoUtil.success("保存门诊缴费信息成功。");
         }
+
+        template = new RestTemplate();
+        response = template.postForObject(hrgApiUrl + "/getPayStatus",
+                obj, QueryMzPayStatusResponse.class);
+        hasSaved = 0;
+        if (null != response && response.getResultCode() != -1) {
+            hasSaved = response.getPayStatus();
+        }
+        if (hasSaved == 1) {
+            return ResultVoUtil.success("保存门诊缴费信息成功。");
+        }
         ResultVo<String> refund = refundService.autoRefund(order.getTradeNo(), "保存门诊缴费信息失败,自动退款。");
         log.info("【订单号:{}】保存门诊缴费信息失败,自动退款结果:{}", order.getTradeNo(), refund);
         if (refund.getCode() == ExceptionEnum.SUCCESS.getCode()) {

+ 2 - 2
src/main/java/thyyxxk/wxservice_server/service/WxApiService.java

@@ -185,9 +185,9 @@ public class WxApiService {
     }
 
     public ResultVo<String> queryOrderState(String tradeNo, QuerySource source) throws Exception {
-        while (TradeVectorUtil.tradeNoBeingQuery(tradeNo)) {
+        if (TradeVectorUtil.tradeNoBeingQuery(tradeNo)) {
             log.info("订单号:{} 正在查询状态中,进入等待区。", tradeNo);
-            TimeUnit.SECONDS.sleep(1);
+            TimeUnit.SECONDS.sleep(2);
         }
         TradeVectorUtil.add(tradeNo);
         try {