From 4ee42556139749bf6f29d47b912da0be6c37da2a Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 15 May 2025 11:29:39 +0800
Subject: [PATCH] feat(mall): 添加商品 SKU静态属性价格字段
---
src/main/java/cc/mrbird/febs/pay/controller/PayCallBackController.java | 40 ++++++++++++++++++++++++++++++++++------
1 files changed, 34 insertions(+), 6 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/pay/controller/PayCallBackController.java b/src/main/java/cc/mrbird/febs/pay/controller/PayCallBackController.java
index b9655e0..6616618 100644
--- a/src/main/java/cc/mrbird/febs/pay/controller/PayCallBackController.java
+++ b/src/main/java/cc/mrbird/febs/pay/controller/PayCallBackController.java
@@ -1,14 +1,20 @@
package cc.mrbird.febs.pay.controller;
import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.pay.properties.AliPayProperties;
+import cc.mrbird.febs.pay.service.IPayService;
import com.alibaba.fastjson.JSONObject;
+import com.alipay.api.AlipayApiException;
+import com.alipay.api.internal.util.AlipaySignature;
import com.ijpay.alipay.AliPayApi;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
@@ -21,14 +27,36 @@
@RequestMapping(value = "/api/pay")
public class PayCallBackController {
+ @Autowired
+ private IPayService payService;
+
+ @Resource
+ private AliPayProperties aliPayProperties;
+
@RequestMapping("/aliCallBack")
- public FebsResponse aliPayCallBack(HttpServletRequest request) {
- log.info("进入回调");
+ public String aliPayCallBack(HttpServletRequest request){
+ log.info("进入支付宝回调");
Map<String, String> params = AliPayApi.toMap(request);
- log.info("回调参数:{}", JSONObject.toJSONString(params));
- for (Map.Entry<String, String> entry : params.entrySet()) {
- log.info("支付宝回调:{}===={}", entry.getKey(), entry.getValue());
+
+ boolean verifyResult = false;
+ try {
+ verifyResult = AlipaySignature.verifyV1(params, aliPayProperties.getPublicKey(), "UTF-8", "RSA2");
+ } catch (AlipayApiException e) {
+ log.info("=验证失败=:{}", params);
+ return "failure";
}
- return new FebsResponse().success();
+
+ if (verifyResult) {
+ if ("TRADE_SUCCESS".equals(params.get("trade_status")) || "TRADE_FINISHED".equals(params.get("trade_status"))) {
+ payService.aliCallback(params);
+ return "success";
+ } else {
+ log.info("支付失败:{}", params);
+ return "failure";
+ }
+ } else {
+ log.info("验证失败:{}", params);
+ return "failure";
+ }
}
}
--
Gitblit v1.9.1