From 818714b1cf020735474594b16e539fafd37cb33f Mon Sep 17 00:00:00 2001
From: liuhaonan <konodioda2333@vip.qq.com>
Date: 星期三, 27 四月 2022 16:02:28 +0800
Subject: [PATCH] 大气数据推送到LED

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3mOrderController.java |  150 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 144 insertions(+), 6 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3mOrderController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3mOrderController.java
index fab209f..f6f6a66 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3mOrderController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3mOrderController.java
@@ -1,21 +1,36 @@
 package com.sandu.ximon.admin.controller;
 
+import com.alipay.api.AlipayClient;
+import com.alipay.api.DefaultAlipayClient;
+import com.alipay.api.domain.AlipayTradeWapPayModel;
+import com.alipay.api.request.AlipayTradeWapPayRequest;
 import com.sandu.common.domain.ResponseVO;
 import com.sandu.common.execption.BusinessException;
 import com.sandu.common.util.ResponseUtil;
+import com.sandu.ximon.admin.config.AlipayConfig;
 import com.sandu.ximon.admin.param.PayParam;
+import com.sandu.ximon.admin.pay.alipay.UsrAlipayConfigService;
+import com.sandu.ximon.admin.pay.wx.WxFastPayService;
 import com.sandu.ximon.admin.service.C3ChargingService;
 import com.sandu.ximon.admin.service.C3mOrderService;
+import com.sandu.ximon.admin.utils.AliPayUtils;
+import com.sandu.ximon.admin.utils.ConfigCheckUtils;
+import com.sandu.ximon.dao.domain.AliConfigEntity;
 import com.sandu.ximon.dao.domain.C3mCharging;
 import com.sandu.ximon.dao.domain.C3mOrder;
+import com.sandu.ximon.dao.enums.OrderType;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.SortedMap;
 
 /**
  * @Author liuhaonan
@@ -28,10 +43,13 @@
 
     private final C3mOrderService c3mOrderService;
     private final C3ChargingService c3mService;
+    private final UsrAlipayConfigService alipayConfigService;
+    private final WxFastPayService wxPayService;
 
 
     /**
      * 閫�娆�
+     *
      * @return
      */
     @PostMapping("/refond")
@@ -66,18 +84,138 @@
 //        return R.ok().put("outTradeNo",c3mOrderEntity.getOutTradeNo())
 //                .put("totalAmount",totalAmount);
 
-        Map map=new HashMap();
-        map.put("outTradeNo",c3mOrderEntity.getOutTradeNo());
-        map.put("totalAmount",param.getTotalAmount());
+        Map map = new HashMap();
+        map.put("outTradeNo", c3mOrderEntity.getOutTradeNo());
+        map.put("totalAmount", param.getTotalAmount());
         return ResponseUtil.success(map);
     }
 
 
+    @PostMapping("/aliPay")
+    public ResponseVO<Object> c3AliPay(@RequestBody PayParam param, HttpServletResponse response) {
+        // 鍟嗘埛璁㈠崟鍙凤紝鍟嗘埛缃戠珯璁㈠崟绯荤粺涓敮涓�璁㈠崟鍙凤紝蹇呭~
+        String out_trade_no = param.getOutTradeNo();
+        System.out.println("璁㈠崟鍙�:" + out_trade_no);
+        // 璁㈠崟鍚嶇О锛屽繀濉�
+        String subject = "鎵爜鍏呯數鏀粯(C3鍏呯數妗�)";
+        // 浠樻閲戦锛屽繀濉紝鍗曚綅涓哄厓锛岀簿纭埌灏忔暟鐐瑰悗涓や綅锛屽彇鍊艰寖鍥碵0.01,100000000]
+        String total_amount = param.getTotalAmount().toString();
+        // 鍟嗗搧鎻忚堪锛屽彲绌�
+        String body = "璇峰嬁浠樻锛屾祴璇曠敤";
+        // 瓒呮椂鏃堕棿 鍙┖
+        String timeout_express = "5m";
+        // 閿�鍞骇鍝佺爜 蹇呭~
+        String product_code = "QUICK_WAP_WAY";
+        /**********************/
+        AliConfigEntity alipayConfigEntity = alipayConfigService.getConfigByPoleId(param.getPoleId());
+        String checkStr = ConfigCheckUtils.checkAlipayConfig(alipayConfigEntity);
+        if (checkStr != null) {
+            try {
+                response.getWriter().write(checkStr);
+                return ResponseUtil.fail("鏀粯瀹屾垚澶辫触");
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        //璋冪敤RSA绛惧悕鏂瑰紡
+        AlipayClient client = new DefaultAlipayClient(AlipayConfig.gatewayUrl, alipayConfigEntity.getAppId(), alipayConfigEntity.getPrivateKey(), AlipayConfig.format, AlipayConfig.charset, alipayConfigEntity.getPublicKey(), AlipayConfig.sign_type);
+        AlipayTradeWapPayRequest alipay_request = new AlipayTradeWapPayRequest();
+
+        // 灏佽璇锋眰鏀粯淇℃伅
+        AlipayTradeWapPayModel model = new AlipayTradeWapPayModel();
+        model.setOutTradeNo(out_trade_no);
+        model.setSubject(subject);
+        model.setTotalAmount(total_amount);
+        model.setBody(body);
+        model.setTimeoutExpress(timeout_express);
+        model.setProductCode(product_code);
+        model.setQuitUrl(C3mOrder.REQUEST_URL + param.getPoleId() + "/" + new Date().getTime());
+        alipay_request.setBizModel(model);
+        // 璁剧疆寮傛閫氱煡鍦板潃
+        alipay_request.setNotifyUrl(C3mOrder.REQUEST_URL + param.getPoleId() + "/" + new Date().getTime());
+        // 璁剧疆鍚屾鍦板潃
+        alipay_request.setReturnUrl(C3mOrder.REQUEST_URL + param.getPoleId() + "/" + new Date().getTime());
+
+        // form琛ㄥ崟鐢熶骇
+        String form = "";
+        try {
+            // 璋冪敤SDK鐢熸垚琛ㄥ崟
+            form = client.pageExecute(alipay_request).getBody();
+            response.setContentType("text/html;charset=" + AlipayConfig.charset);
+            response.getWriter().write(form);//鐩存帴灏嗗畬鏁寸殑琛ㄥ崟html杈撳嚭鍒伴〉闈�
+            response.getWriter().flush();
+            response.getWriter().close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return ResponseUtil.success("鏀粯瀹屾垚");
+    }
+
+    @RequestMapping("/wxpay")
+    public ResponseVO<Object> c3Wxpay(@RequestBody PayParam param) {
+
+        //String result = wxPayService.miniAppPay(outTradeNo, totalAmount, streetlightId);
+        SortedMap<Object, Object> result = wxPayService.appPay("鎵爜鍏呯數鏀粯(C3鍏呯數妗�)", param.getOutTradeNo(), param.getWxPayTotalAmount(), param.getPoleId());
+
+        return ResponseUtil.success(result);
+    }
+
+    public ResponseVO<Object> queryPayStates(@RequestBody PayParam param) {
+
+//        //String result = wxPayService.miniAppPay(outTradeNo, totalAmount, streetlightId);
+////鏀粯瀹濅氦鏄撳彿
+//        String trade_no = WIDtrade_no.Text.Trim();
+////鏀粯瀹濅氦鏄撳彿涓庡晢鎴风綉绔欒鍗曞彿涓嶈兘鍚屾椂涓虹┖
+////鍟嗘埛璁㈠崟鍙�
+//        String out_trade_no = WIDout_trade_no.Text.Trim();
+////鎶婅姹傚弬鏁版墦鍖呮垚鏁扮粍
+//
+//        SortedDictionary<string, string> sParaTemp = new SortedDictionary<string, string>();
+//        sParaTemp.Add("partner", Config.Partner);
+//        sParaTemp.Add("_input_charset", Config.Input_charset.ToLower());
+//        sParaTemp.Add("service", "single_trade_query");
+//        sParaTemp.Add("trade_no", trade_no);
+//        sParaTemp.Add("out_trade_no", out_trade_no);
+////寤虹珛璇锋眰
+//        string sHtmlText = Submit.BuildRequest(sParaTemp);
+//
+////璇峰湪杩欓噷鍔犱笂鍟嗘埛鐨勪笟鍔¢�昏緫绋嬪簭浠g爜
+//
+////鈥斺�旇鏍规嵁鎮ㄧ殑涓氬姟閫昏緫鏉ョ紪鍐欑▼搴忥紙浠ヤ笅浠g爜浠呬綔鍙傝�冿級鈥斺��
+//
+//        XmlDocument xmlDoc = new XmlDocument();
+//        try
+//        {
+//            xmlDoc.LoadXml(sHtmlText);
+//            string strXmlResponse = xmlDoc.SelectSingleNode("/alipay").InnerText;
+//            Response.Write(strXmlResponse);
+//        }
+//        catch (Exception exp)
+//        {
+//            Response.Write(sHtmlText);
+//        }
+
+        return ResponseUtil.success(null);
+    }
 
 
+    @RequestMapping("/queryOrder")
+    public ResponseVO<Object> queryOrder(@RequestBody PayParam param) {
+        if (param.getOrderId() == null) {
+            throw new BusinessException("璇疯緭鍏ユ纭殑璁㈠崟id");
+        }
+        C3mOrder order = c3mOrderService.getById(param.getOrderId());
+        if (order == null) {
+            throw new BusinessException("璁㈠崟涓嶅瓨鍦�");
+        }
+        if ((OrderType.ALIPAY.getCode()).equals(order.getOrderType())) {
+            return ResponseUtil.success(AliPayUtils.alipayQuery(order.getOutTradeNo(), param.getPoleId()));
+        } else if ((OrderType.WXPAY.getCode()).equals(order.getOrderType())) {
+            return ResponseUtil.success(wxPayService.WxOrderQuery(param.getPoleId(), order.getOutTradeNo()));
+        } else {
+            return ResponseUtil.success("鏀粯鏂瑰紡寮傚父");
+        }
 
-
-
-
+    }
 
 }

--
Gitblit v1.9.3