From 7cf1eb27ecbd23ddc1d0e8080c9637aa6f2a2bf9 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 25 六月 2025 08:45:38 +0800
Subject: [PATCH] Merge branch 'dev' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile
---
ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/AliPayController.java | 88 +++++++++++++++++++++++++++++++++++++-------
1 files changed, 74 insertions(+), 14 deletions(-)
diff --git a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/AliPayController.java b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/AliPayController.java
index 171369c..0d927f1 100644
--- a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/AliPayController.java
+++ b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/AliPayController.java
@@ -1,7 +1,11 @@
package com.ruoyi.payment.controller;
+import com.alipay.api.AlipayApiException;
+import com.alipay.api.internal.util.AlipaySignature;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.order.api.feignClient.ChargingOrderClient;
+import com.ruoyi.order.api.feignClient.OrderClient;
import com.ruoyi.payment.ali.config.AliProperties;
import com.ruoyi.payment.ali.v2.AppletPayUtil;
import com.ruoyi.payment.api.model.*;
@@ -12,8 +16,12 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
/**
* @author zhibing.pu
@@ -44,7 +52,6 @@
if(null != payment){
AliPaymentResp aliPaymentResp = new AliPaymentResp();
aliPaymentResp.setTradeNo(payment.getTradeNo());
- aliPaymentResp.setNotifyUrl(aliProperties.getNotifyUrl());
return R.ok(aliPaymentResp);
}
return R.ok();
@@ -88,28 +95,81 @@
}
+ @Resource
+ private OrderClient orderClient;
+ @Resource
+ private ChargingOrderClient chargingOrderClient;
@ResponseBody
- @PostMapping(value = "/allCallBack")
- public void chargingOrderALICallback(@RequestBody AliQueryOrder aliQueryOrder, HttpServletResponse response) {
+ @PostMapping(value = "/callBack")
+ public void chargingOrderALICallback(HttpServletRequest request, HttpServletResponse response) {
try {
- String out_trade_no = aliQueryOrder.getOutTradeNo();
- String transaction_id = aliQueryOrder.getTradeNo();
- String attach = aliQueryOrder.getPassbackParams();
-// AjaxResult ajaxResult = chargingOrderService.chargingOrderCallback(2, out_trade_no, transaction_id, attach);
-// if (ajaxResult.isSuccess()) {
-// PrintWriter writer = response.getWriter();
-// writer.println("success");
-// writer.flush();
-// writer.close();
-// }
+ Map<String, String> callback = alipayCallback(request);
+ if(null != callback){
+ String out_trade_no = callback.get("out_trade_no");
+ String attach = callback.get("subject");
+ String total_amount = callback.get("total_amount");
+ String transaction_id = callback.get("trade_no");
+ String substring = out_trade_no.substring(0, 2);
+ switch (substring){
+ //购物订单
+ case "GW":
+ R r = orderClient.callBack(out_trade_no, transaction_id);
+ System.err.println("----收到购物回调");
+ break;
+ case "HY":
+ orderClient.vipCallBack(out_trade_no,transaction_id);
+ System.err.println("----收到会员回调");
+ break;
+ case "CD":
+ chargingOrderClient.chargingOrderALICallback(out_trade_no, transaction_id, attach);
+ System.err.println("----充电支付回调");
+ break;
+ }
+ PrintWriter writer = response.getWriter();
+ writer.println("success");
+ writer.flush();
+ writer.close();
+ }
} catch (Exception e) {
e.printStackTrace();
}
}
-
+ public Map<String, String> alipayCallback(HttpServletRequest request){
+ Map<String,String> params = new HashMap<String,String>();
+ Map requestParams = request.getParameterMap();
+ for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {
+ String name = (String) iter.next();
+ String[] values = (String[]) requestParams.get(name);
+ String valueStr = "";
+ for (int i = 0; i < values.length; i++) {
+ valueStr = (i == values.length - 1) ? valueStr + values[i]
+ : valueStr + values[i] + ",";
+ }
+ params.put(name, valueStr);
+ }
+ try {
+ boolean flag = AlipaySignature.rsaCheckV1(params, aliProperties.getAlipayPublicKey(), "UTF-8","RSA2");
+ if(flag){
+ Map<String, String> map = new HashMap<>();
+ String out_trade_no = params.get("out_trade_no");
+ String subject = params.get("subject");
+ String total_amount = params.get("total_amount");
+ String trade_no = params.get("trade_no");
+ map.put("out_trade_no", out_trade_no);//商家订单号
+ map.put("subject", subject);
+ map.put("total_amount", total_amount);
+ map.put("trade_no", trade_no);//支付宝交易号
+ return map;
+ }
+
+ } catch (AlipayApiException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
}
--
Gitblit v1.7.1