From 2b6c540c6b20e04f8b2a05e6f0c22ba5d5016364 Mon Sep 17 00:00:00 2001
From: manailin <261030956@qq.com>
Date: 星期六, 24 九月 2022 14:09:50 +0800
Subject: [PATCH] Merge branch 'huacheng_test' of http://gitlab.nhys.cdnhxx.com/root/zhihuishequ into huacheng_test

---
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java |  164 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 164 insertions(+), 0 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java
index 5d975e0..abf7c9d 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java
@@ -13,11 +13,13 @@
 import com.panzhihua.applets.umf.MyAESUtil;
 import com.panzhihua.applets.umf.UmfPayUtil;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.user.UserService;
 import com.panzhihua.common.utlis.DateUtils;
 import com.panzhihua.common.utlis.HttpClientUtil;
 import com.umf.api.service.UmfService;
 import com.umf.api.service.UmfServiceImpl;
 import io.swagger.annotations.ApiOperation;
+import com.panzhihua.common.service.community.ComBatteryCommodityOrderFeign;
 import org.json.XML;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
@@ -42,12 +44,19 @@
 @RequestMapping("/wx/")
 public class WxCallbackApi {
 
+    private static final String  SUCCESS="SUCCESS";
+
     @Resource
     private CommunityService communityService;
     @Resource
     private UmfPayUtil umfPayUtil;
     @Value("${umf.file}")
     private String file;
+    @Resource
+    private UserService userService;
+    @Resource
+    private ComBatteryCommodityOrderFeign commodityOrderFeign;
+
 
     @PostMapping("wxNotify")
     public void payCallback(HttpServletRequest request, HttpServletResponse response) {
@@ -169,4 +178,159 @@
         }
 
     }
+    @ApiOperation("uu洗车推送")
+    @PostMapping("/uuPush")
+    public R uuPush(@RequestBody String aesString){
+        try {
+            Map<String, String> aesMap= (Map<String, String>) JSON.parse(aesString);
+            String desString=MyAESUtil.Decrypt(aesMap.get("aesString"),"Ryo7M3n8loC5Abcd");
+            Map<String,String> desMap= (Map) JSON.parse(desString);
+            return userService.uuPush(desMap.get("washer_mobile"),desMap.get("phone"),desMap.get("washer_name"),Integer.parseInt(desMap.get("order_status")));
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.fail("推送失败");
+        }
+
+    }
+
+    /**
+     * 电动车商城商品购买支付回调
+     * @param request   请求参数
+     * @param response  返回参数
+     */
+    @PostMapping("/batteryPayNotify")
+    public void batteryPayNotify(HttpServletRequest request, HttpServletResponse response) {
+        log.info("钱包充值微信支付回调start");
+        String inputLine = "";
+        String notityXml = "";
+        try {
+            while ((inputLine = request.getReader().readLine()) != null) {
+                notityXml += inputLine;
+            }
+            // 关闭流
+            request.getReader().close();
+            log.info("钱包充值微信回调内容信息:" + notityXml);
+            // 解析成Json
+            org.json.JSONObject xmlJson = XML.toJSONObject(notityXml);
+            if (StringUtils.isNotEmpty(xmlJson.toString())) {
+                JSONObject resultData = JSON.parseObject(xmlJson.get("xml").toString());
+                // 成功支付订单
+                if (SUCCESS.equals(resultData.getString("result_code")) && SUCCESS.equals(resultData.getString("result_code"))){
+                    WxPayNotifyOrderDTO notifyOrderDTO = getWxNotify(resultData);
+
+                    // 根据订单号修改订单信息
+                    commodityOrderFeign.batteryPayNotify(notifyOrderDTO);
+                    // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功
+                    PrintWriter writer = response.getWriter();
+                    // 返回
+                    writer.print(getWxSuccessString());
+                } else {// 未成功支付订单
+                    // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功
+                    PrintWriter writer = response.getWriter();
+                    // 返回
+                    writer.print(getWxFailString());
+                }
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @PostMapping("/batteryActivityPayNotify")
+    public void batteryActivityPayNotify(HttpServletRequest request, HttpServletResponse response) {
+        log.info("购买活动商品微信支付回调start");
+        String inputLine = "";
+        String notityXml = "";
+        try {
+            while ((inputLine = request.getReader().readLine()) != null) {
+                notityXml += inputLine;
+            }
+            // 关闭流
+            request.getReader().close();
+            log.info("购买活动商品微信回调内容信息:" + notityXml);
+            // 解析成Json
+            org.json.JSONObject xmlJson = XML.toJSONObject(notityXml);
+            if (StringUtils.isNotEmpty(xmlJson.toString())) {
+                JSONObject resultData = JSON.parseObject(xmlJson.get("xml").toString());
+                // 成功支付订单
+                if (SUCCESS.equals(resultData.getString("result_code")) && SUCCESS.equals(resultData.getString("result_code"))){
+                    WxPayNotifyOrderDTO notifyOrderDTO = getWxNotify(resultData);
+
+                    // 根据订单号修改订单信息
+                    commodityOrderFeign.batteryActivityPayNotify(notifyOrderDTO);
+                    // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功
+                    PrintWriter writer = response.getWriter();
+                    // 返回
+                    writer.print(getWxSuccessString());
+                } else {// 未成功支付订单
+                    // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功
+                    PrintWriter writer = response.getWriter();
+                    // 返回
+                    writer.print(getWxFailString());
+                }
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 将微信支付回调的请求参数转义为对象
+     * @param resultData    微信支付回调请求参数
+     * @return  转义为支付请求参数
+     */
+    private WxPayNotifyOrderDTO getWxNotify(JSONObject resultData){
+        WxPayNotifyOrderDTO notifyOrderDTO = new WxPayNotifyOrderDTO();
+        notifyOrderDTO.setResult(resultData.toJSONString());
+        // 订单号
+        String orderTradeNo = resultData.getString("out_trade_no");
+        notifyOrderDTO.setOrderTradeNo(orderTradeNo);
+        // 微信支付订单号
+        String wxTradeNo = resultData.getString("transaction_id");
+        notifyOrderDTO.setWxTradeNo(wxTradeNo);
+        // 订单金额
+        String totalFee = resultData.getString("total_fee");
+        notifyOrderDTO.setTotalFee(totalFee);
+        // 支付完成时间
+        String payTime = resultData.getString("time_end");
+        notifyOrderDTO.setPayTime(payTime);
+        // 现金支付金额
+        String cashFee = resultData.getString("cash_fee");
+        notifyOrderDTO.setCashFee(cashFee);
+        //附加数据
+        String attach = resultData.getString("attach");
+        notifyOrderDTO.setAttach(attach);
+        return notifyOrderDTO;
+    }
+
+    /**
+     * 封装微信成功返回值
+     * @return  成功返回值
+     */
+    private String getWxSuccessString(){
+        StringBuffer buffer = new StringBuffer();
+        buffer.append("<xml>");
+        buffer.append("<return_code>SUCCESS</return_code>");
+        buffer.append("<return_msg>OK</return_msg>");
+        buffer.append("</xml>");
+        return buffer.toString();
+    }
+
+    /**
+     * 封装微信失败返回值
+     * @return  失败返回值
+     */
+    private String getWxFailString(){
+        StringBuffer buffer = new StringBuffer();
+        buffer.append("<xml>");
+        buffer.append("<return_code>FAIL</return_code>");
+        buffer.append("<return_msg>FAIL</return_msg>");
+        buffer.append("</xml>");
+        return buffer.toString();
+    }
+
+    @GetMapping("/settle")
+    public R settle(String settleDate){
+        return R.ok(umfPayUtil.settle(settleDate));
+    }
 }

--
Gitblit v1.7.1