Sfoglia il codice sorgente

fix: pay返回值为string

DingXiaoYu 2 anni fa
parent
commit
786f830322

+ 7 - 26
src/main/java/com/seecoder/BlueWhale/configure/AlipayTools.java

@@ -63,28 +63,12 @@ public class AlipayTools {
             e.printStackTrace();
         }
     }
-
-//    public String pay(String tradeName, String name , Double price){
-//        AlipayClient alipayClient = new DefaultAlipayClient(serverUrl,appId,appPrivateKey,format,charset,alipayPublicKey,signType);
-//        AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
-//        request.setNotifyUrl(notifyUrl);
-//        JSONObject bizContent = new JSONObject();
-//        bizContent.put("out_trade_no", tradeName); //订单id-优惠券id
-//        bizContent.put("total_amount", price);
-//        bizContent.put("subject", name);
-//        bizContent.put("product_code", "FAST_INSTANT_TRADE_PAY");
-//        request.setBizContent(bizContent.toString());
-//        String form;
-//        try  {
-//            form = alipayClient.pageExecute(request).getBody();
-//            System.out.println(form);
-//        }  catch  (Exception e) {
-//            throw BlueWhaleException.payError();
-//        }
-//        return form;
-//    }
-
-    public void pay(String tradeName, String name , Double price, HttpServletResponse httpResponse){
+    /**
+     * @Author: DingXiaoyu
+     * @Date: 11:25 2024/1/31
+     * 使用支付宝沙箱
+    */
+    public String pay(String tradeName, String name , Double price){
         AlipayClient alipayClient = new DefaultAlipayClient(serverUrl,appId,appPrivateKey,format,charset,alipayPublicKey,signType);
         AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
         request.setNotifyUrl(notifyUrl);
@@ -97,12 +81,9 @@ public class AlipayTools {
         String form;
         try  {
             form = alipayClient.pageExecute(request).getBody();
-            httpResponse.setContentType("text/html;charset=" + charset);
-            httpResponse.getWriter().write(form);
-            httpResponse.getWriter().flush();
-            httpResponse.getWriter().close();
         }  catch  (Exception e) {
             throw BlueWhaleException.payError();
         }
+        return form;
     }
 }

+ 2 - 3
src/main/java/com/seecoder/BlueWhale/controller/OrderController.java

@@ -1,6 +1,5 @@
 package com.seecoder.BlueWhale.controller;
 
-import com.seecoder.BlueWhale.configure.AlipayTools;
 import com.seecoder.BlueWhale.service.OrderService;
 import com.seecoder.BlueWhale.vo.OrderVO;
 import com.seecoder.BlueWhale.vo.ResultVO;
@@ -33,8 +32,8 @@ public class OrderController {
     }
 
     @PostMapping("/pay")
-    public void pay(@RequestParam("orderId") Integer orderId,@RequestParam("couponId")Integer couponId){
-        orderService.pay(orderId,couponId);
+    public ResultVO<String> pay(@RequestParam("orderId") Integer orderId,@RequestParam("couponId")Integer couponId){
+        return ResultVO.buildSuccess(orderService.pay(orderId,couponId));
     }
 
     @PostMapping("/deliver")

+ 1 - 1
src/main/java/com/seecoder/BlueWhale/service/OrderService.java

@@ -8,7 +8,7 @@ public interface OrderService {
     OrderVO create(OrderVO orderVO);
     List<OrderVO> getAllOrders();
     OrderVO getOrder(Integer id);
-    void pay(Integer orderId,Integer couponId);
+    String pay(Integer orderId,Integer couponId);
     Boolean deliver(Integer orderId);
     Boolean get(Integer orderId);
     Boolean comment(Integer orderId, String comment, Integer rating);

+ 2 - 8
src/main/java/com/seecoder/BlueWhale/serviceImpl/OrderServiceImpl.java

@@ -2,7 +2,6 @@ package com.seecoder.BlueWhale.serviceImpl;
 
 import com.seecoder.BlueWhale.configure.AlipayTools;
 import com.seecoder.BlueWhale.enums.OrderStatusEnum;
-import com.seecoder.BlueWhale.enums.RoleEnum;
 import com.seecoder.BlueWhale.exception.BlueWhaleException;
 import com.seecoder.BlueWhale.po.*;
 import com.seecoder.BlueWhale.repository.*;
@@ -13,8 +12,6 @@ import com.seecoder.BlueWhale.vo.OrderVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -43,9 +40,6 @@ public class OrderServiceImpl implements OrderService {
     @Autowired
     AlipayTools alipayTools;
 
-    @Autowired
-    HttpServletResponse httpServletResponse;
-
     @Override
     public OrderVO create(OrderVO orderVO) {
         Order order = orderVO.toPO();
@@ -84,7 +78,7 @@ public class OrderServiceImpl implements OrderService {
     }
 
     @Override
-    public void pay(Integer orderId,Integer couponId) {
+    public String pay(Integer orderId,Integer couponId) {
         User user=securityUtil.getCurrentUser();
         Order order = orderRepository.findById(orderId).orElse(null);
         if(order == null){
@@ -107,7 +101,7 @@ public class OrderServiceImpl implements OrderService {
             tradeName=tradeName.concat("$");
         }
         String name=productRepository.findById(order.getProductId()).get().getName();
-        alipayTools.pay(tradeName,name,calculate(orderId,couponId),httpServletResponse);
+        return alipayTools.pay(tradeName,name,calculate(orderId,couponId));
     }
 
     @Override