Quellcode durchsuchen

更新缴费状态

‘chenzhilei’ vor 2 Wochen
Ursprung
Commit
59c3814801

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

@@ -93,6 +93,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) {

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

@@ -181,13 +181,28 @@ public class WxApiService {
         }
     }
 
+    public ResultVo<Transaction.TradeStateEnum> updateNongOrderState(String 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);
+            return ResultVoUtil.success(Transaction.TradeStateEnum.SUCCESS);
+        } else {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "网络服务错误!");
+        }
+    }
+
     public ResultVo<NongPayResponse> queryNongOrderPayOrder(NongPayRequest nongPayRequest) {
-        System.out.println("queryNongOrderPayOrder");
+        System.out.println("queryNongOrderPayOrder"+JSONObject.toJSONString(nongPayRequest));
         String url = nongApi + "NongPay/unifiedOrder";
         NongPayResponse response = template.postForObject(url, nongPayRequest, NongPayResponse.class);
         System.out.println("response"+JSONObject.toJSONString(response.getData()));
         return ResultVoUtil.success(response);
-
     }
 
     public String queryOrderState(String tradeNo) {