From 451484fae6c4f62dc8ca4a4ce3d0d83e5d907681 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期二, 18 十一月 2025 21:01:28 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
UserJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java | 277 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 276 insertions(+), 1 deletions(-)
diff --git a/UserJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index 61216f3..ae32efa 100644
--- a/UserJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/UserJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.huifu.bspay.sdk.opps.core.utils.RsaUtils;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.CharteredCar.server.IOrderCharteredCarService;
import com.stylefeng.guns.modular.account.model.TEnterpriseWithdrawal;
@@ -46,8 +47,13 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
+import java.security.KeyFactory;
+import java.security.PublicKey;
+import java.security.spec.X509EncodedKeySpec;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -1481,7 +1487,58 @@
+ /**
+ * 斗拱回调 取消订单
+ * @param request
+ */
+ @ResponseBody
+ @PostMapping("/base/DGCancelOrderTaxi")
+ public void DGCancelOrderTaxi(HttpServletRequest request, HttpServletResponse response){
+ try {
+ String sign =request.getParameter("sign");
+ String resp_data = request.getParameter("resp_data");
+ System.out.println(sign);
+ System.out.println(resp_data);
+ resp_data = resp_data.replaceAll("& #40;", "(").replaceAll("& #41;",")");
+
+ boolean verify = RsaUtils.verify(resp_data, "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsWrruP9JBxrUd8uEX5Z8y7pg/UIr5RNHSgDnHqNI1hbi2MfTzB5vZ275wSFFaLDD9BesgDWqsUepPS/opROlDCg9y6WYH8mkN23NmHL9F8kT48OMmH722am+Hp0XVMMwXqA0oNt4f7oW6kDemjZW8/RT4vIE7cyxoxSsVRvjqSpx9wDgFLPWh3o0pHQaoxLyeUsGBATHFrxEDlosBvsuXjMcgjPKXALrcemzKOhBmBkLgyxNVmh61ZK+FNXd+/X4PeZlnWf54NRQAUKe1308E6IIaszo+CjneKuhj1m/X4f7AIvxAqlhuCV5E/DfKRmGopxaWqdtE960Y/H4SmBh2wIDAQAB", sign);
+ if(verify){
+ JSONObject jsonObject = JSONObject.parseObject(resp_data);
+ String order_id = jsonObject.get("out_trans_id").toString();
+ String out_trade_no = jsonObject.get("req_seq_id").toString();
+ String trans_stat = jsonObject.get("trans_stat").toString();
+ if("S".equals(trans_stat)){
+ 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, 1);
+ break;
+ case 2:
+ orderTaxiService.payCancelOrderTaxi(id, order_id, 1);
+ break;
+ case 3:
+ orderCrossCityService.payCancelOrderCrossCity(id, order_id, 1);
+ break;
+ }
+
+ PrintWriter out = response.getWriter();
+ out.print("success");
+ out.flush();
+ out.close();
+
+ }
+
+// cloudPay(map.get("total_fee"),map.get("transaction_id"),1);
+ }
+
+
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
@@ -1567,6 +1624,90 @@
}
}
+
+
+ /**
+ * 斗拱回调 支付
+ * @param request
+ */
+ @ResponseBody
+ @PostMapping("/base/DGCallBack")
+ public void DGCallBack(HttpServletRequest request, HttpServletResponse response){
+ try {
+ String sign =request.getParameter("sign");
+ String resp_data = request.getParameter("resp_data");
+ System.out.println(sign);
+ System.out.println(resp_data);
+ resp_data = resp_data.replaceAll("& #40;", "(").replaceAll("& #41;",")");
+
+
+ boolean verify = RsaUtils.verify(resp_data, "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsWrruP9JBxrUd8uEX5Z8y7pg/UIr5RNHSgDnHqNI1hbi2MfTzB5vZ275wSFFaLDD9BesgDWqsUepPS/opROlDCg9y6WYH8mkN23NmHL9F8kT48OMmH722am+Hp0XVMMwXqA0oNt4f7oW6kDemjZW8/RT4vIE7cyxoxSsVRvjqSpx9wDgFLPWh3o0pHQaoxLyeUsGBATHFrxEDlosBvsuXjMcgjPKXALrcemzKOhBmBkLgyxNVmh61ZK+FNXd+/X4PeZlnWf54NRQAUKe1308E6IIaszo+CjneKuhj1m/X4f7AIvxAqlhuCV5E/DfKRmGopxaWqdtE960Y/H4SmBh2wIDAQAB", sign);
+ if(verify){
+ JSONObject jsonObject = JSONObject.parseObject(resp_data);
+ String o = jsonObject.get("req_seq_id").toString();
+ String order_id = jsonObject.get("out_trans_id").toString();
+ String out_trade_no = jsonObject.get("req_seq_id").toString();
+ String trans_stat = jsonObject.get("trans_stat").toString();
+ if("S".equals(trans_stat)){
+ String[] split = out_trade_no.split("_");
+ Integer id = Integer.valueOf(split[0]);
+ Integer type = Integer.valueOf(split[1]);
+ switch (type){
+ case 1:
+ orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 1);
+ break;
+ case 2:
+ orderTaxiService.payOrderTaxiCallback(id, order_id, 1,0);
+ break;
+ case 3:
+ orderCrossCityService.payOrderCrossCityCallback(id, order_id, 1,null);
+ break;
+ case 4:
+ orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1);
+ break;
+ case 5:
+ orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1);
+ break;
+ }
+
+ PrintWriter out = response.getWriter();
+ out.print("success");
+ out.flush();
+ out.close();
+
+ }
+
+// cloudPay(map.get("total_fee"),map.get("transaction_id"),1);
+ }
+
+
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+ public final String getBody(HttpServletRequest request) {
+ InputStreamReader in = null;
+ try {
+ in = new InputStreamReader(request.getInputStream(), StandardCharsets.UTF_8);
+ StringBuffer bf = new StringBuffer();
+ int len;
+ char[] chs = new char[1024];
+ while ((len = in.read(chs)) != -1) {
+ bf.append(new String(chs, 0, len));
+ }
+ return bf.toString();
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ if (null != in) {
+ try {
+ in.close();
+ } catch (Exception e) {
+ }
+ }
+ }
+ return null;
+ }
/**
* 完成订单微信支付回调
@@ -1676,6 +1817,46 @@
/**
+ * 斗拱回调 支付小件物流差价支付回调
+ * @param request
+ */
+ @ResponseBody
+ @PostMapping("/base/DGPayOrderLogisticsSpread")
+ public void DGPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response){
+ try {
+ String sign =request.getParameter("sign");
+ String resp_data = request.getParameter("resp_data");
+ resp_data = resp_data.replaceAll("& #40;", "(").replaceAll("& #41;",")");
+
+ boolean verify = RsaUtils.verify(resp_data, "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsWrruP9JBxrUd8uEX5Z8y7pg/UIr5RNHSgDnHqNI1hbi2MfTzB5vZ275wSFFaLDD9BesgDWqsUepPS/opROlDCg9y6WYH8mkN23NmHL9F8kT48OMmH722am+Hp0XVMMwXqA0oNt4f7oW6kDemjZW8/RT4vIE7cyxoxSsVRvjqSpx9wDgFLPWh3o0pHQaoxLyeUsGBATHFrxEDlosBvsuXjMcgjPKXALrcemzKOhBmBkLgyxNVmh61ZK+FNXd+/X4PeZlnWf54NRQAUKe1308E6IIaszo+CjneKuhj1m/X4f7AIvxAqlhuCV5E/DfKRmGopxaWqdtE960Y/H4SmBh2wIDAQAB", sign);
+ System.out.println("斗拱回调 支付小件物流差价支付回调:");
+ if(verify){
+ JSONObject jsonObject = JSONObject.parseObject(resp_data);
+ String order_id = jsonObject.get("out_trans_id").toString();
+ String out_trade_no = jsonObject.get("req_seq_id").toString();
+ String trans_stat = jsonObject.get("trans_stat").toString();
+ if("S".equals(trans_stat) && ToolUtil.isNotEmpty(out_trade_no)){
+ String[] split = out_trade_no.split("_");
+ Integer id = Integer.valueOf(split[0]);
+ Integer type = Integer.valueOf(split[1]);
+ orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 1);
+
+ PrintWriter out = response.getWriter();
+ out.print("success");
+ out.flush();
+ out.close();
+
+ }
+
+// cloudPay(map.get("total_fee"),map.get("transaction_id"),1);
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+
+
+ /**
* 小件物流差价微信支付回调
* @param request
*/
@@ -1737,6 +1918,8 @@
e.printStackTrace();
}
}
+
+
/**
* 取消订单微信退款成功回调
@@ -1811,6 +1994,45 @@
}
+
+ /**
+ * 斗拱回调 购买出行卡支付回调
+ * @param request
+ */
+ @ResponseBody
+ @PostMapping("/base/DGPayTaxiCardPaymentSpread")
+ public void DGPayTaxiCardPaymentSpread(HttpServletRequest request, HttpServletResponse response){
+ try {
+ String sign =request.getParameter("sign");
+ String resp_data = request.getParameter("resp_data");
+ resp_data = resp_data.replaceAll("& #40;", "(").replaceAll("& #41;",")");
+
+ boolean verify = RsaUtils.verify(resp_data, "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsWrruP9JBxrUd8uEX5Z8y7pg/UIr5RNHSgDnHqNI1hbi2MfTzB5vZ275wSFFaLDD9BesgDWqsUepPS/opROlDCg9y6WYH8mkN23NmHL9F8kT48OMmH722am+Hp0XVMMwXqA0oNt4f7oW6kDemjZW8/RT4vIE7cyxoxSsVRvjqSpx9wDgFLPWh3o0pHQaoxLyeUsGBATHFrxEDlosBvsuXjMcgjPKXALrcemzKOhBmBkLgyxNVmh61ZK+FNXd+/X4PeZlnWf54NRQAUKe1308E6IIaszo+CjneKuhj1m/X4f7AIvxAqlhuCV5E/DfKRmGopxaWqdtE960Y/H4SmBh2wIDAQAB", sign);
+ System.out.println("斗拱回调 购买出行卡支付回调:");
+ if(verify){
+ JSONObject jsonObject = JSONObject.parseObject(resp_data);
+ String order_id = jsonObject.get("out_trans_id").toString();
+ String out_trade_no = jsonObject.get("req_seq_id").toString();
+ String trans_stat = jsonObject.get("trans_stat").toString();
+ if("S".equals(trans_stat) && ToolUtil.isNotEmpty(out_trade_no)){
+ out_trade_no = out_trade_no.split("_")[0];
+ taxiCardService.payTaxiCardPaymentSpread(Integer.valueOf(out_trade_no), order_id);
+
+ PrintWriter out = response.getWriter();
+ out.print("success");
+ out.flush();
+ out.close();
+
+ }
+
+// cloudPay(map.get("total_fee"),map.get("transaction_id"),1);
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+
+
/**
* 购买出行卡微信支付回调
* @param request
@@ -1828,7 +2050,7 @@
String out_trade_no = map.get("out_trade_no");
String result = map.get("result");
System.out.println(out_trade_no+"_"+order_id);
- if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){
+ if(ToolUtil.isNotEmpty(out_trade_no)){
PrintWriter out = response.getWriter();
out.write(result);
out.flush();
@@ -1913,6 +2135,59 @@
}
+
+ /**
+ * 斗拱 感谢费支付回调
+ * @param request
+ * @param response
+ */
+ @ResponseBody
+ @PostMapping("/base/DGPayThankYouFee")
+ public void DGPayThankYouFee(HttpServletRequest request, HttpServletResponse response){
+ try {
+ String sign =request.getParameter("sign");
+ String resp_data = request.getParameter("resp_data");
+ resp_data = resp_data.replaceAll("& #40;", "(").replaceAll("& #41;",")");
+ boolean verify = RsaUtils.verify(resp_data, "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsWrruP9JBxrUd8uEX5Z8y7pg/UIr5RNHSgDnHqNI1hbi2MfTzB5vZ275wSFFaLDD9BesgDWqsUepPS/opROlDCg9y6WYH8mkN23NmHL9F8kT48OMmH722am+Hp0XVMMwXqA0oNt4f7oW6kDemjZW8/RT4vIE7cyxoxSsVRvjqSpx9wDgFLPWh3o0pHQaoxLyeUsGBATHFrxEDlosBvsuXjMcgjPKXALrcemzKOhBmBkLgyxNVmh61ZK+FNXd+/X4PeZlnWf54NRQAUKe1308E6IIaszo+CjneKuhj1m/X4f7AIvxAqlhuCV5E/DfKRmGopxaWqdtE960Y/H4SmBh2wIDAQAB", sign);
+ if(verify){
+ JSONObject jsonObject = JSONObject.parseObject(resp_data);
+ String order_id = jsonObject.get("out_trans_id").toString();
+ String out_trade_no = jsonObject.get("req_seq_id").toString();
+ String trans_stat = jsonObject.get("trans_stat").toString();
+ if("S".equals(trans_stat) && ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){
+
+ String[] s = out_trade_no.split("_");
+ switch (Integer.valueOf(s[1])){
+ case 1:
+ orderPrivateCarService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1);
+ case 2:
+ orderTaxiService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1);
+ case 3:
+ orderCrossCityService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1);
+ case 4:
+ orderLogisticsService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1);
+ case 5:
+ orderLogisticsService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1);
+ case 6:
+ orderCharteredCarService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1);
+ case 7:
+ orderCallService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1);
+ }
+
+ PrintWriter out = response.getWriter();
+ out.print("success");
+ out.flush();
+ out.close();
+
+ }
+// cloudPay(map.get("total_fee"),map.get("transaction_id"),1);
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+
+
/**
* 感谢费支付回调
* @param request
--
Gitblit v1.7.1