‘chenzhilei’ hai 2 semanas
pai
achega
e39ba1d6ab

+ 7 - 0
src/main/java/thyyxxk/wxservice_server/controller/WxApiController.java

@@ -94,6 +94,13 @@ public class WxApiController {
         return status;
     }
 
+    @PassToken
+    @GetMapping("/updateNongOrderState")
+    public ResultVo<Transaction.TradeStateEnum> updateNongOrderState(@RequestParam("tradeNo") String tradeNo) {
+        ResultVo<Transaction.TradeStateEnum> status = service.updateNongOrderState(tradeNo);
+        return status;
+    }
+
     @PassToken
     @PostMapping("/queryNongOrderPayOrder")
     public ResultVo<NongPayResponse> queryNongOrderPayOrder(@RequestBody NongPayRequest nongPayRequest) {

+ 18 - 0
src/main/java/thyyxxk/wxservice_server/service/WxApiService.java

@@ -182,6 +182,24 @@ public class WxApiService {
         }
     }
 
+    public ResultVo<Transaction.TradeStateEnum> updateNongOrderState(String tradeNo) {
+        System.out.println("进入订单支付状态同步,参数为,tradeNo="+tradeNo);
+        WxPayOrder order = dao.selectOrderByTradeNo(tradeNo);
+        if (order == null) {
+            return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
+        }
+        String url = nongApi + "NongPay/query?type=0&mchOrderNo="+order.getMchOrderNo();
+        NongPayResponse response = template.getForObject(url, NongPayResponse.class);
+        if (response.getCode() == 9003 && (Integer) response.getData().get("state") == 2) {
+            dao.updatePayStatusAndPayTime(order.getTradeNo(), Transaction.TradeStateEnum.SUCCESS,DateUtil.formatDatetime(new Date((Long)response.getData().get("successTime"))));
+            dao.alreadyPayed(tradeNo);
+            System.out.println("进入订单支付状态同步结束---------------------》");
+            return ResultVoUtil.success(Transaction.TradeStateEnum.SUCCESS);
+        } else {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "网络服务错误!");
+        }
+    }
+
     public ResultVo<NongPayResponse> queryNongOrderPayOrder(NongPayRequest nongPayRequest) {
         System.out.println("queryNongOrderPayOrder");
         String url = nongApi + "NongPay/unifiedOrder";