From 47219ffd0b67b586625312ac41a298d98610ffb2 Mon Sep 17 00:00:00 2001 From: liyuxin <1579178744@qq.com> Date: Tue, 3 Sep 2024 12:04:01 +0800 Subject: [PATCH] =?UTF-8?q?9.3=20=E6=9D=8E=E9=9B=A8=E6=AC=A3=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E8=B4=AD=E4=B9=B0=E8=AE=B0=E5=BD=95=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=2012:03?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../market/server/config/MyAliPayConfig.java | 2 + .../server/controller/AliPayController.java | 46 +++++++++++-------- .../server/controller/MyapiController.java | 4 ++ .../server/controller/PartyController.java | 2 +- 4 files changed, 35 insertions(+), 19 deletions(-) diff --git a/cloud-market2-server/src/main/java/com/muyu/market/server/config/MyAliPayConfig.java b/cloud-market2-server/src/main/java/com/muyu/market/server/config/MyAliPayConfig.java index 3bffb83..5a7fcbf 100644 --- a/cloud-market2-server/src/main/java/com/muyu/market/server/config/MyAliPayConfig.java +++ b/cloud-market2-server/src/main/java/com/muyu/market/server/config/MyAliPayConfig.java @@ -16,6 +16,8 @@ public class MyAliPayConfig { private String appPrivateKey; private String alipayPublicKey; private String notifyUrl; + //支付成功后的回调地址 + private String returnUrl; @PostConstruct public void init() { diff --git a/cloud-market2-server/src/main/java/com/muyu/market/server/controller/AliPayController.java b/cloud-market2-server/src/main/java/com/muyu/market/server/controller/AliPayController.java index 5620522..6a364a9 100644 --- a/cloud-market2-server/src/main/java/com/muyu/market/server/controller/AliPayController.java +++ b/cloud-market2-server/src/main/java/com/muyu/market/server/controller/AliPayController.java @@ -5,15 +5,18 @@ import com.alipay.api.AlipayClient; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.request.AlipayTradePagePayRequest; -import com.muyu.market.server.config.MyAliPayConfig; +import com.alipay.easysdk.factory.Factory; import com.muyu.data.AliPay; +import com.muyu.market.server.config.MyAliPayConfig; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +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 java.util.HashMap; import java.util.Map; import java.util.UUID; @@ -26,21 +29,27 @@ public class AliPayController { private static final String FORMAT_JSON = "JSON"; private static final String CHARSET_UTF8 = "UTF-8"; private static final String SIGN_TYPE_RSA2 = "RSA2"; - - - @Resource + @Autowired private MyAliPayConfig myAliPayConfig; @GetMapping("/pay") public void pay(AliPay aliPay, HttpServletResponse httpResponse) throws Exception{ + + AlipayClient alipayClient = new DefaultAlipayClient(GATEWAY_URL, myAliPayConfig.getAppId(), - myAliPayConfig.getAppPrivateKey(), FORMAT_JSON, CHARSET_UTF8, myAliPayConfig.getAlipayPublicKey(), SIGN_TYPE_RSA2); + myAliPayConfig.getAppPrivateKey(), FORMAT_JSON, + CHARSET_UTF8, myAliPayConfig.getAlipayPublicKey(), + SIGN_TYPE_RSA2); + AlipayTradePagePayRequest request = new AlipayTradePagePayRequest(); request.setNotifyUrl(myAliPayConfig.getNotifyUrl()); - //-商品的内容可以从系统中传递过来,目前这里是手写的 - aliPay.setTraceNo(UUID.randomUUID().toString().replaceAll("-","")); - aliPay.setTotalAmount("100"); - aliPay.setSubject("笔记本华硕"); + request.setReturnUrl(myAliPayConfig.getReturnUrl()); + +// //-商品的内容可以从系统中传递过来 +// aliPay.setTraceNo(UUID.randomUUID().toString().replaceAll("-","")); +// aliPay.setTotalAmount("100"); +// aliPay.setSubject("笔记本华硕"); + request.setBizContent("{\"out_trade_no\":\"" + aliPay.getTraceNo() + "\"," + "\"total_amount\":\"" + aliPay.getTotalAmount() + "\"," @@ -59,6 +68,7 @@ public class AliPayController { } + @PostMapping("/notify") // 注意这里必须是POST接口 public String payNotify(HttpServletRequest request) throws Exception { if (request.getParameter("trade_status").equals("TRADE_SUCCESS")) { @@ -71,12 +81,13 @@ public class AliPayController { // 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)) { + + + // 支付宝验签 + if (Factory.Payment.Common().verifyNotify(params)) { // 验签通过 System.out.println("交易名称: " + params.get("subject")); System.out.println("交易状态: " + params.get("trade_status")); @@ -87,10 +98,9 @@ public class AliPayController { System.out.println("买家付款时间: " + params.get("gmt_payment")); System.out.println("买家付款金额: " + params.get("buyer_pay_amount")); - // 更新订单未已支付 -// ordersMapper.updateState(tradeNo, "已支付", gmtPayment, alipayTradeNo); - //} + // 更新订单已支付的逻辑代码 + } + } + return "success"; } - return "success"; - } } diff --git a/cloud-market2-server/src/main/java/com/muyu/market/server/controller/MyapiController.java b/cloud-market2-server/src/main/java/com/muyu/market/server/controller/MyapiController.java index aa94b07..0653dca 100644 --- a/cloud-market2-server/src/main/java/com/muyu/market/server/controller/MyapiController.java +++ b/cloud-market2-server/src/main/java/com/muyu/market/server/controller/MyapiController.java @@ -75,6 +75,7 @@ public class MyapiController { return Result.success(null,"操作成功"); } + /** * 删除 * @param myapiId @@ -86,6 +87,9 @@ public class MyapiController { myapiService.removeById(myapiId); return Result.success(null,"操作成功"); } + + + /** * 回显接口 * @param myapiId diff --git a/cloud-market2-server/src/main/java/com/muyu/market/server/controller/PartyController.java b/cloud-market2-server/src/main/java/com/muyu/market/server/controller/PartyController.java index ce9580e..1725481 100644 --- a/cloud-market2-server/src/main/java/com/muyu/market/server/controller/PartyController.java +++ b/cloud-market2-server/src/main/java/com/muyu/market/server/controller/PartyController.java @@ -25,6 +25,6 @@ public class PartyController { //测试 public static void main(String[] args) { - SelectPhoneUtil.queryMobileLocation("18790307917"); + SelectPhoneUtil.queryMobileLocation("15066755856"); } }