From 7a14e1592dd0c2cfd6cd4e8b11f95c9f46f2ffe7 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 05 七月 2023 20:07:04 +0800
Subject: [PATCH] 修改支付相关逻辑代码

---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java |  243 ++++++++++++++++++++++++++----------------------
 1 files changed, 132 insertions(+), 111 deletions(-)

diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index 94ba12f..6dadc7a 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -880,16 +880,17 @@
      */
     @ResponseBody
     @PostMapping("/api/taxi/cancleOrderTaxi")
-    @ApiOperation(value = "取消操作支付", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
+    @ApiOperation(value = "取消操作支付【1.1】", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
     @ApiImplicitParams({
             @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"),
             @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "支付方式(1=线上支付,3=余额)", name = "payType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "支付方式(1=手机支付,2=银行卡支付,3=余额)", name = "payType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "银行卡id", name = "bankCardId", required = false, dataType = "int"),
             @ApiImplicitParam(value = "取消单id(取消操作返回)", name = "cancleId", required = false, dataType = "int"),
             @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"),
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil cancleOrderTaxi(Integer id, Integer orderType, Integer payType, Integer cancleId, Integer type, Integer language, HttpServletRequest request){
+    public ResultUtil cancleOrderTaxi(Integer id, Integer orderType, Integer payType, Integer bankCardId, Integer cancleId, Integer type, Integer language, HttpServletRequest request){
         try {
             Integer uid = userInfoService.getUserIdFormRedis(request);
             if(null == uid){
@@ -897,7 +898,7 @@
             }
             switch (orderType){
                 case 1:
-                    return orderPrivateCarService.cancleOrderPrivateCar(id, payType, "user_" + uid, cancleId, type, language);
+                    return orderPrivateCarService.cancleOrderPrivateCar(id, payType, bankCardId, cancleId, type, language);
 //                case 2:
 //                    return orderTaxiService.cancleOrderTaxi(id, payType, cancleId, type);
 //                case 3:
@@ -971,18 +972,18 @@
                 case 1:
                     map = orderPrivateCarService.queryBalance(orderId, uid);
                     break;
-                case 2:
-                    map = orderTaxiService.queryBalance(orderId, uid);
-                    break;
-                case 3:
-                    map = orderCrossCityService.queryBalance(orderId, uid);
-                    break;
+//                case 2:
+//                    map = orderTaxiService.queryBalance(orderId, uid);
+//                    break;
+//                case 3:
+//                    map = orderCrossCityService.queryBalance(orderId, uid);
+//                    break;
                 case 4:
                     map = orderLogisticsService.queryBalance(orderId, uid);
                     break;
-                case 5:
-                    map = orderLogisticsService.queryBalance(orderId, uid);
-                    break;
+//                case 5:
+//                    map = orderLogisticsService.queryBalance(orderId, uid);
+//                    break;
             }
             return ResultUtil.success(map);
         }catch (Exception e){
@@ -1022,12 +1023,12 @@
                 case 1:
                     list = orderPrivateCarService.queryCoupon(orderId, uid, pageNum, size);
                     break;
-                case 2:
-                    list = orderTaxiService.queryCoupon(orderId, uid, pageNum, size);
-                    break;
-                case 3:
-                    list = orderCrossCityService.queryCoupon(orderId, uid, pageNum, size);
-                    break;
+//                case 2:
+//                    list = orderTaxiService.queryCoupon(orderId, uid, pageNum, size);
+//                    break;
+//                case 3:
+//                    list = orderCrossCityService.queryCoupon(orderId, uid, pageNum, size);
+//                    break;
 //                case 4:
 //                    list = orderLogisticsService.queryCoupon(orderId, uid, pageNum, size);
 //                    break;
@@ -1231,17 +1232,18 @@
                 String order_id = payments.getPayer_transaction_id();
                 if(ToolUtil.isNotEmpty(out_trade_no)){
                     Integer type = Integer.valueOf(out_trade_no.substring(17, 18));
-                    Integer id = Integer.valueOf(out_trade_no.substring(18));
+                    Integer language = Integer.valueOf(out_trade_no.substring(18, 19));
+                    Integer id = Integer.valueOf(out_trade_no.substring(19));
                     switch (type){
                         case 1:
-                            orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, 1);
+                            orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, language);
                             break;
-                        case 2:
-                            orderTaxiService.payCancelOrderTaxi(id, order_id, 1);
-                            break;
-                        case 3:
-                            orderCrossCityService.payCancelOrderCrossCity(id, order_id, 1);
-                            break;
+//                        case 2:
+//                            orderTaxiService.payCancelOrderTaxi(id, order_id, 1);
+//                            break;
+//                        case 3:
+//                            orderCrossCityService.payCancelOrderCrossCity(id, order_id, 1);
+//                            break;
                     }
                     callbackResponse.setCheckout_request_id(order_id);
                     callbackResponse.setMerchant_transaction_id(out_trade_no);
@@ -1271,31 +1273,31 @@
     @PostMapping("/base/aliCancelOrderTaxi")
     public void aliCancelOrderTaxi(HttpServletRequest request, HttpServletResponse response){
         try {
-            Map<String, String> map = payMoneyUtil.alipayCallback(request);//icbcPayUtil.payCallback(request);
-            if(null != map){
-                String out_trade_no = map.get("out_trade_no");
-                String order_id = map.get("trade_no");
-                if(ToolUtil.isNotEmpty(out_trade_no)){
-                    String[] split = out_trade_no.split("_");
-                    Integer id = Integer.valueOf(split[0]);
-                    Integer type = Integer.valueOf(split[1]);
-                    switch (type){
-                        case 1:
-                            orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, 2);
-                            break;
-                        case 2:
-                            orderTaxiService.payCancelOrderTaxi(id, order_id, 2);
-                            break;
-                        case 3:
-                            orderCrossCityService.payCancelOrderCrossCity(id, order_id, 2);
-                            break;
-                    }
-                }
-                response.setContentType("text/html;charset=UTF-8");
-                PrintWriter out;
-                out = response.getWriter();
-                out.println("success"); // 请不要修改或删除
-            }
+//            Map<String, String> map = payMoneyUtil.alipayCallback(request);//icbcPayUtil.payCallback(request);
+//            if(null != map){
+//                String out_trade_no = map.get("out_trade_no");
+//                String order_id = map.get("trade_no");
+//                if(ToolUtil.isNotEmpty(out_trade_no)){
+//                    String[] split = out_trade_no.split("_");
+//                    Integer id = Integer.valueOf(split[0]);
+//                    Integer type = Integer.valueOf(split[1]);
+//                    switch (type){
+//                        case 1:
+//                            orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, 2);
+//                            break;
+//                        case 2:
+//                            orderTaxiService.payCancelOrderTaxi(id, order_id, 2);
+//                            break;
+//                        case 3:
+//                            orderCrossCityService.payCancelOrderCrossCity(id, order_id, 2);
+//                            break;
+//                    }
+//                }
+//                response.setContentType("text/html;charset=UTF-8");
+//                PrintWriter out;
+//                out = response.getWriter();
+//                out.println("success"); // 请不要修改或删除
+//            }
         }catch (Exception e){
             e.printStackTrace();
         }
@@ -1328,25 +1330,25 @@
                 Payments payments = callbackRequest.getPayments().get(0);
                 String order_id = payments.getPayer_transaction_id();
                 if(ToolUtil.isNotEmpty(out_trade_no)){
-                    Integer type = Integer.valueOf(out_trade_no.substring(17, 18));
+                    Integer orderType = Integer.valueOf(out_trade_no.substring(17, 18));
                     Integer language = Integer.valueOf(out_trade_no.substring(18, 19));
                     Integer id = Integer.valueOf(out_trade_no.substring(19));
-                    switch (type){
+                    switch (orderType){
                         case 1:
-                            orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 1, language);
+                            orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, language);
                             break;
-                        case 2:
-                            orderTaxiService.payOrderTaxiCallback(id, order_id, 1);
-                            break;
-                        case 3:
-                            orderCrossCityService.payOrderCrossCityCallback(id, order_id, 1);
-                            break;
+//                        case 2:
+//                            orderTaxiService.payOrderTaxiCallback(id, order_id, 1);
+//                            break;
+//                        case 3:
+//                            orderCrossCityService.payOrderCrossCityCallback(id, order_id, 1);
+//                            break;
                         case 4:
-                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1, language);
+                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, language);
                             break;
-                        case 5:
-                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1, language);
-                            break;
+//                        case 5:
+//                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1, language);
+//                            break;
                     }
                     callbackResponse.setCheckout_request_id(order_id);
                     callbackResponse.setMerchant_transaction_id(out_trade_no);
@@ -1386,21 +1388,21 @@
                     Integer type = Integer.valueOf(split[1]);
                     Integer language = Integer.valueOf(split[2]);
                     switch (type){
-                        case 1:
-                            orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 2, language);
-                            break;
-                        case 2:
-                            orderTaxiService.payOrderTaxiCallback(id, order_id, 2);
-                            break;
-                        case 3:
-                            orderCrossCityService.payOrderCrossCityCallback(id, order_id, 2);
-                            break;
-                        case 4:
-                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2, language);
-                            break;
-                        case 5:
-                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2, language);
-                            break;
+//                        case 1:
+//                            orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 2, language);
+//                            break;
+//                        case 2:
+//                            orderTaxiService.payOrderTaxiCallback(id, order_id, 2);
+//                            break;
+//                        case 3:
+//                            orderCrossCityService.payOrderCrossCityCallback(id, order_id, 2);
+//                            break;
+//                        case 4:
+//                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2, language);
+//                            break;
+//                        case 5:
+//                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2, language);
+//                            break;
                     }
                     response.setContentType("text/html;charset=UTF-8");
                     PrintWriter out;
@@ -1419,30 +1421,49 @@
 
     /**
      * 小件物流差价微信支付回调
-     * @param request
      */
     @ResponseBody
     @PostMapping("/base/wxPayOrderLogisticsSpread")
-    public void wxPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response){
+    public CallbackResponse wxPayOrderLogisticsSpread(@RequestBody CallbackRequest callbackRequest){
+        CallbackResponse callbackResponse = new CallbackResponse();
         try {
-            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);//icbcPayUtil.payCallback(request);
-            if(null != map){
-                String out_trade_no = map.get("out_trade_no");
-                String order_id = map.get("transaction_id");
-                String s = null;//icbcPayUtil.queryTransaction("", order_id);
-                if(!s.equals("") && !s.equals("2")){
-                    //icbcPayUtil.answer(response);//回调应答
+            /**
+             * 指示服务是否成功或付费的总体请求代码。。
+             * 177-部分付费请求
+             * 178-表明请求已全额支付
+             * 179-表示请求已部分支付但已过期。
+             * 129-请求已过期,未付款。
+             * 180.商户拒绝请求
+             * 183-商户接受请求,我们可以结算资金
+             * 188-商户收到请求。
+             */
+            String request_status_code = callbackRequest.getRequest_status_code();
+            String out_trade_no = callbackRequest.getMerchant_transaction_id();
+            if("177".equals(request_status_code) || "178".equals(request_status_code)){
+                Payments payments = callbackRequest.getPayments().get(0);
+                String order_id = payments.getPayer_transaction_id();
+                if(ToolUtil.isNotEmpty(out_trade_no)){
+                    Integer orderType = Integer.valueOf(out_trade_no.substring(17, 18));
+                    Integer language = Integer.valueOf(out_trade_no.substring(18, 19));
+                    Integer id = Integer.valueOf(out_trade_no.substring(19));
+                    orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, language);
+                    callbackResponse.setCheckout_request_id(order_id);
+                    callbackResponse.setMerchant_transaction_id(out_trade_no);
+                    callbackResponse.setStatus_code("183");
+                    callbackResponse.setStatus_description("Payment processed successfully");
+                    callbackResponse.setReceipt_number(UUIDUtil.getRandomCode(16));
                 }
-                if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id) && s.equals("0")){
-                    String[] split = out_trade_no.split(",");
-                    Integer id = Integer.valueOf(split[0]);
-                    Integer type = Integer.valueOf(split[1]);
-                    orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 1);
-                }
+            }else{
+                callbackResponse.setCheckout_request_id(UUIDUtil.getRandomCode(16));
+                callbackResponse.setMerchant_transaction_id(out_trade_no);
+                callbackResponse.setStatus_code("180");
+                callbackResponse.setStatus_description("means payment rejected.");
+                callbackResponse.setReceipt_number(UUIDUtil.getRandomCode(16));
             }
         }catch (Exception e){
             e.printStackTrace();
         }
+        return callbackResponse;
     }
 
 
@@ -1454,22 +1475,22 @@
     @PostMapping("/base/aliPayOrderLogisticsSpread")
     public void aliPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response){
         try {
-            Map<String, String> map = payMoneyUtil.alipayCallback(request);//icbcPayUtil.payCallback(request);
-            if(null != map){
-                String out_trade_no = map.get("out_trade_no");
-                String order_id = map.get("trade_no");
-                String s = null;//icbcPayUtil.queryTransaction("", order_id);
-                if(!s.equals("") && !s.equals("2")){
-                    //icbcPayUtil.answer(response);//回调应答
-                }
-                if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id) && s.equals("0")){
-                    String[] split = out_trade_no.split(",");
-                    Integer id = Integer.valueOf(split[0]);
-                    Integer type = Integer.valueOf(split[1]);
-                    orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 2);
-                }
-
-            }
+//            Map<String, String> map = payMoneyUtil.alipayCallback(request);//icbcPayUtil.payCallback(request);
+//            if(null != map){
+//                String out_trade_no = map.get("out_trade_no");
+//                String order_id = map.get("trade_no");
+//                String s = null;//icbcPayUtil.queryTransaction("", order_id);
+//                if(!s.equals("") && !s.equals("2")){
+//                    //icbcPayUtil.answer(response);//回调应答
+//                }
+//                if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id) && s.equals("0")){
+//                    String[] split = out_trade_no.split(",");
+//                    Integer id = Integer.valueOf(split[0]);
+//                    Integer type = Integer.valueOf(split[1]);
+//                    orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 2);
+//                }
+//
+//            }
         }catch (Exception e){
             e.printStackTrace();
         }

--
Gitblit v1.7.1