From a648f3e08210a1ed04bf819cccedc56e5afc24c3 Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期一, 27 六月 2022 17:51:50 +0800
Subject: [PATCH] 支付配置
---
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3mOrderController.java | 146 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 144 insertions(+), 2 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 f6cd22d..7260cfe 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,19 +1,38 @@
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.Map;
+import java.util.SortedMap;
/**
* @Author liuhaonan
- * @Date 2022/3/22 14:10
* @Version 1.0
*/
@RestController
@@ -22,12 +41,14 @@
public class C3mOrderController {
private final C3mOrderService c3mOrderService;
+ private final C3ChargingService c3mService;
+ private final UsrAlipayConfigService alipayConfigService;
+ private final WxFastPayService wxPayService;
/**
* 閫�娆�
*
- * @param params
* @return
*/
@PostMapping("/refond")
@@ -38,4 +59,125 @@
(Double) params.get("refundAmount")));
}
+
+ /**
+ * 棰勪粯娆撅紝鐢熸垚璁㈠崟(鎴栫洿鎺ヤ粠redis涓幏鍙栧綋鍓嶆湭杩囨湡鐨勮鍗�)
+ *
+ * @return
+ */
+ @PostMapping("/advancePay")
+ public ResponseVO<Object> advancePayOrder(@RequestBody PayParam param) {
+ if (param.getTotalAmount() < 0) {
+ throw new BusinessException("閲戦蹇呴』澶т簬0");
+ }
+ // C3鍏呯數妗╁疄浣�
+ C3mCharging c3m = c3mService.getC3mByPoleId(param.getPoleId());
+ if (null == c3m) {
+ throw new BusinessException("鏈壘鍒板綋鍓嶅厖鐢垫々");
+ }
+ C3mOrder c3mOrderEntity = c3mOrderService.advancePayOrder(param.getPoleId(), c3m, "wxpay"
+ , param.getTotalAmount(), param.getSubscribeChargingCapacity());
+ if (null == c3mOrderEntity) {
+ throw new BusinessException("璇ュ厖鐢垫々姝h浣跨敤!");
+ }
+// return R.ok().put("outTradeNo",c3mOrderEntity.getOutTradeNo())
+// .put("totalAmount",totalAmount);
+
+ param.setOutTradeNo(c3mOrderEntity.getOutTradeNo());
+ param.setTotalAmount(c3mOrderEntity.getTotalAmount());
+ String s = WxFastPayService.parseWxAmount(param.getTotalAmount().toString());
+ SortedMap<Object, Object> result = wxPayService.miniAppPay("鎵爜鍏呯數鏀粯(C3鍏呯數妗�)", param.getOutTradeNo(),Integer.valueOf(s) , param.getPoleId());
+ return ResponseUtil.success(result);
+ }
+
+
+ @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(),c3mOrderEntity);
+//
+// return ResponseUtil.success(result);
+// }
+
+
+ @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