From 19428a49b4c07b14097615d48a7a72dbf941c4e7 Mon Sep 17 00:00:00 2001
From: zhujie <leon.zhu@cloudroam.com.cn>
Date: 星期五, 18 四月 2025 15:20:02 +0800
Subject: [PATCH] Merge branch 'master' of http://47.96.225.205:8888/r/smart_message

---
 src/main/java/com/mzl/flower/web/v2/pay/AlipayController.java |   56 +++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 43 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/mzl/flower/web/v2/pay/AlipayController.java b/src/main/java/com/mzl/flower/web/v2/pay/AlipayController.java
index d4b73a0..478ac3b 100644
--- a/src/main/java/com/mzl/flower/web/v2/pay/AlipayController.java
+++ b/src/main/java/com/mzl/flower/web/v2/pay/AlipayController.java
@@ -7,16 +7,25 @@
 import com.alipay.api.request.AlipayTradeAppPayRequest;
 import com.alipay.api.response.AlipayTradeAppPayResponse;
 
+import com.alipay.api.response.AlipayTradeQueryResponse;
 import com.mzl.flower.base.BaseController;
 import com.mzl.flower.base.R;
 import com.mzl.flower.config.pay.AlipayProperties;
+import com.mzl.flower.dto.request.pay.PayQueryDTO;
+import com.mzl.flower.dto.request.productOrders.ProductOrdersCreateDTO;
+import com.mzl.flower.entity.productOrders.ProductOrdersDO;
+import com.mzl.flower.enums.PayTypeEnum;
+import com.mzl.flower.service.pay.AlipayService;
+import com.mzl.flower.service.productOrders.ProductOrdersService;
 import com.mzl.flower.utils.alipay.OrderInfoUtil2_0;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletRequest;
 import java.util.*;
@@ -38,33 +47,39 @@
     @Autowired
     AlipayClient alipayClient;
 
+    @Autowired
+    private ProductOrdersService productOrdersService;
+
+    @Autowired
+    private AlipayService alipayService;
+
     /**
      * 获取订单支付请求参数
      * @param
      * @return
      * @throws Exception
      */
-    @GetMapping(value = "/pay-order-info")
+    @PostMapping(value = "/pay-order-info")
     @ApiOperation(value = "获取订单支付请求参数")
-    public ResponseEntity getPayOrderInfo() throws Exception {
+    public ResponseEntity getPayOrderInfo(@Validated @RequestBody ProductOrdersCreateDTO productOrdersCreateDTO) throws Exception {
 
-        String orderId=" ";
-        String totalAmount="0.01";
-        String subject="测试支付";
-        String body="我是测试支付";
-//        创建订单
-//        createAlipayOrder(orderId,totalAmount,subject);
+        // 创建订单
+        // 当前的支付类型是微信支付
+        ProductOrdersDO productOrdersDTO=new ProductOrdersDO();
+        BeanUtils.copyProperties(productOrdersCreateDTO,productOrdersDTO);
+        productOrdersDTO.setPaymentMethod(PayTypeEnum.ALIPAY.getName());
+
+        ProductOrdersDO productOrdersDO=productOrdersService.createProductOrders(productOrdersDTO);
 
         //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
         AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
         //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
         AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
-        model.setBody("我是测试数据");
-        model.setSubject("App支付测试Java");
-        model.setOutTradeNo(OrderInfoUtil2_0.getOutTradeNo());
-//        model.setOutTradeNo(orderId);
+        model.setBody(productOrdersDO.getOrderType()+"_"+productOrdersDO.getCurrentPrice());
+        model.setSubject(productOrdersDO.getOrderName());
+        model.setOutTradeNo(productOrdersDO.getOrderNo());
+        model.setTotalAmount(productOrdersDO.getCurrentPrice()+"");
         model.setTimeoutExpress("30m");
-        model.setTotalAmount("0.01");
         model.setProductCode("QUICK_MSECURITY_PAY");
         request.setBizModel(model);
         request.setNotifyUrl(alipayProperties.getNotifyUrl());
@@ -81,6 +96,18 @@
         }
     }
 
+    /**
+     * 支付宝回调url
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @PostMapping(value = "/order/status")
+    @ApiOperation(value = "订单状态")
+    public AlipayTradeQueryResponse queryOrderByOutOrderNo(@Validated @RequestBody PayQueryDTO payQueryDTO, HttpServletRequest request) throws Exception{
+        AlipayTradeQueryResponse response=alipayService.queryOrderByOutOrderNo(payQueryDTO.getOuterOrderNo());
+        return response;
+    }
     /**
      * 支付宝回调url
      * @param request
@@ -111,6 +138,9 @@
         // 查看验签结果
         System.out.println(rsa2);
         if(rsa2){
+            // 更新支付状态
+            productOrdersService.updateProductOrderStatus(params);
+
             return "success";
         }
 

--
Gitblit v1.9.3