From c2e5a0611a0c724c00f62d5d8213439674b14d22 Mon Sep 17 00:00:00 2001 From: wxy <14293288+zysysys@user.noreply.gitee.com> Date: Wed, 4 Sep 2024 11:55:48 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9B=86=E6=88=90=E6=94=AF=E4=BB=98=E5=AE=9D?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增支付宝支付控制器中的异步通知处理,并添加必要的依赖项。实现基本的支付通知逻辑,以便接收和验证支付宝的支付回调。 - 在`PaymentController`中添加处理支付宝支付通知的方法。 - 引入`alipay-easysdk`依赖项以支持支付宝支付功能。 - 实现支付回调的基本日志记录和参数处理。 - 注释和文档无重大变化,保持清晰。 --- pom.xml | 10 +++++ .../system/controller/PaymentController.java | 37 +++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/pom.xml b/pom.xml index eee20eb..75a4873 100644 --- a/pom.xml +++ b/pom.xml @@ -17,6 +17,16 @@ + + + + + com.alipay.sdk + alipay-easysdk + 2.2.1 + + + com.alipay.sdk alipay-sdk-java diff --git a/src/main/java/com/muyu/system/controller/PaymentController.java b/src/main/java/com/muyu/system/controller/PaymentController.java index 29e7dc6..9b12685 100644 --- a/src/main/java/com/muyu/system/controller/PaymentController.java +++ b/src/main/java/com/muyu/system/controller/PaymentController.java @@ -6,16 +6,21 @@ import com.alipay.api.AlipayClient; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.request.AlipayTradePagePayRequest; import com.alipay.api.response.AlipayTradePagePayResponse; +import com.alipay.easysdk.factory.Factory; import com.muyu.common.core.domain.Result; import com.muyu.common.system.domain.PaymentParam; import com.muyu.config.util.SfUtil; import com.muyu.config.util.StandingRes; import com.muyu.system.service.SysUserService; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.HashMap; +import java.util.Map; + /** * @Author: wangxinyuan * @Date: 2024/8/25 下午3:21 @@ -77,6 +82,38 @@ public class PaymentController { return Result.success(response.getBody()); } + + @PostMapping("/notify") // 注意这里必须是POST接口 + public String payNotify(HttpServletRequest request) throws Exception { + if (request.getParameter("trade_status").equals("TRADE_SUCCESS")) { + System.out.println("=========支付宝异步回调========"); + + Map params = new HashMap<>(); + Map requestParams = request.getParameterMap(); + for (String name : requestParams.keySet()) { + params.put(name, request.getParameter(name)); + // System.out.println(name + " = " + request.getParameter(name)); + } + + String tradeNo = params.get("out_trade_no"); + String gmtPayment = params.get("gmt_payment"); + String alipayTradeNo = params.get("trade_no"); + // 支付宝验签 + if (Factory.Payment.Common().verifyNotify(params)) { + // 验签通过 + System.out.println("交易名称: " + params.get("subject")); + System.out.println("交易状态: " + params.get("trade_status")); + System.out.println("支付宝交易凭证号: " + params.get("trade_no")); + System.out.println("商户订单号: " + params.get("out_trade_no")); + System.out.println("交易金额: " + params.get("total_amount")); + System.out.println("买家在支付宝唯一id: " + params.get("buyer_id")); + System.out.println("买家付款时间: " + params.get("gmt_payment")); + System.out.println("买家付款金额: " + params.get("buyer_pay_amount")); + } + } + return "success"; + } + @Autowired private SysUserService userService; //TODO 充值记录添加