From 774c0b57de71a09c1965a89a1a08f9196b23fcd5 Mon Sep 17 00:00:00 2001
From: liulin <lin.liu@88.com>
Date: 星期五, 04 七月 2025 16:45:25 +0800
Subject: [PATCH] 修改支付接口

---
 src/main/java/com/lunhan/water/host/controller/pay/PaymentServicesController.java |  164 ++++++++++++++++++++++++++++++------------------------
 1 files changed, 90 insertions(+), 74 deletions(-)

diff --git a/src/main/java/com/lunhan/water/host/controller/pay/PaymentServicesController.java b/src/main/java/com/lunhan/water/host/controller/pay/PaymentServicesController.java
index 045a487..439b4ed 100644
--- a/src/main/java/com/lunhan/water/host/controller/pay/PaymentServicesController.java
+++ b/src/main/java/com/lunhan/water/host/controller/pay/PaymentServicesController.java
@@ -1,74 +1,90 @@
-//package com.lunhan.water.host.controller.pay;
-//
-//import com.alipay.api.AlipayApiException;
-//import com.lunhan.water.common.ExecutedResult;
-//import com.lunhan.water.common.util.ParameterUtil;
-//import com.lunhan.water.common.validator.ParameterValidateResult;
-//import com.lunhan.water.common.validator.ParameterValidator;
-//import com.lunhan.water.entity.enums.EBusinessType;
-//import com.lunhan.water.entity.request.pay.ReqCreatePay;
-//import com.lunhan.water.entity.request.pay.ReqOrderPay;
-//import com.lunhan.water.entity.request.pay.ReqPayRefund;
-//import com.lunhan.water.host.BasicController;
-//import com.lunhan.water.service.PaymentServices;
-//import lombok.extern.slf4j.Slf4j;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.web.bind.annotation.PostMapping;
-//import org.springframework.web.bind.annotation.RequestBody;
-//import org.springframework.web.bind.annotation.RequestMapping;
-//import org.springframework.web.bind.annotation.RestController;
-//
-//import java.util.Map;
-//
-///**
-// * 50.支付服务
-// *
-// * @author li。ling。yu
-// * @date 2023/10/19
-// * @order 50
-// */
-//@Slf4j
-//@RestController
-//@RequestMapping(value = "/pay/service")
-//public class PaymentServicesController extends BasicController {
-//
-//    @Autowired
-//    private PaymentServices services;
-//
-//    /**
-//     * 发起微信支付
-//     * @param request 请求参数
-//     *
-//     * @return 返回微信jsapi支付参数
-//     */
-//    @PostMapping(value = "wxPay")
-//    public ExecutedResult<Map<String, Object>> wxPay(@RequestBody ReqCreatePay request) {
-//        //#region 参数验证
-//        ParameterValidator validator = new ParameterValidator()
-//                // 必须是枚举值
-//                .addMustEnum(ParameterUtil.named("业务类型"), request.getBusinessType(), EBusinessType.class)
-//                // 必须大于0
-//                //.addNotNullOrEmpty(ParameterUtil.named("订单号"), request.getBusinessNo())
-//                ;
-//        ParameterValidateResult result = validator.validate();
-//        if (result.getIsFiled()) {
-//            return ExecutedResult.failed(result.getErrorMsg());
-//        }
-//        //#endregion
-//        return services.weiXinPay(this.getTokenUser(), request);
-//    }
-//
-//
-//
-//    /**
-//     * 发起微信退款
-//     * @param request 请求参数
-//     *
-//     * @return 返回退款流水号
-//     */
-//    @PostMapping(value = "wxRefund")
-//    public ExecutedResult<String> wxRefund(@RequestBody ReqPayRefund request) {
-//        //PaymentMerchantPO merchant = super.getTokenUser();
-//        return services.weiXinRefund(request);
-//    }
-//}
+package com.lunhan.water.host.controller.pay;
+
+import com.lunhan.water.common.ExecutedResult;
+import com.lunhan.water.common.util.ParameterUtil;
+import com.lunhan.water.common.util.StringUtil;
+import com.lunhan.water.common.validator.ParameterValidateResult;
+import com.lunhan.water.common.validator.ParameterValidator;
+import com.lunhan.water.entity.enums.EBusinessType;
+import com.lunhan.water.entity.request.pay.ReqCreatePay;
+import com.lunhan.water.entity.request.pay.ReqOrderPay;
+import com.lunhan.water.entity.request.pay.ReqPayRefund;
+import com.lunhan.water.host.BasicController;
+import com.lunhan.water.service.PaymentServices;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 50.支付服务
+ *
+ * @author li。ling。yu
+ * @date 2023/10/19
+ * @order 50
+ */
+@Slf4j
+@RestController
+@RequestMapping(value = "/pay/service")
+public class PaymentServicesController extends BasicController {
+
+    @Autowired
+    private PaymentServices services;
+    @Autowired
+    private RedisTemplate<String, Object> redisTemplate;
+    /**
+     * 发起微信支付
+     * @param request 请求参数
+     *
+     * @return 返回微信jsapi支付参数
+     */
+    @PostMapping(value = "wxPay")
+    public ExecutedResult<Map<String, Object>> wxPay(@RequestBody ReqCreatePay request) {
+        //#region 参数验证
+        ParameterValidator validator = new ParameterValidator()
+                // 必须是枚举值
+                .addMustEnum(ParameterUtil.named("业务类型"), request.getBusinessType(), EBusinessType.class)
+                //水表编号不能为空
+                //.addNotNullOrEmpty(ParameterUtil.named("支付token"), request.getPayToken());
+                ;
+        ParameterValidateResult result = validator.validate();
+        if (result.getIsFiled()) {
+            return ExecutedResult.failed(result.getErrorMsg());
+        }
+        //#endregion
+        return services.weiXinPay(this.getTokenUser(), request);
+    }
+
+    @PostMapping("/getPayToken")
+    public ExecutedResult<String>getPayToken(){
+        String token = UUID.randomUUID().toString();
+        redisTemplate.opsForValue().set(token,token,5, TimeUnit.MINUTES);
+        return ExecutedResult.success(token);
+    }
+    @GetMapping("/getRedisToken")
+    public ExecutedResult<String>getRedisToken(String token){
+        String string = redisTemplate.opsForValue().get(token).toString();
+        if(StringUtil.isNullOrEmpty(string)){
+            return ExecutedResult.failed("请勿重复提交订单");
+        }
+        redisTemplate.delete(string);
+        return ExecutedResult.success(string);
+    }
+
+    /**
+     * 发起微信退款
+     * @param request 请求参数
+     *
+     * @return 返回退款流水号
+     */
+    @PostMapping(value = "wxRefund")
+    public ExecutedResult<String> wxRefund(@RequestBody ReqPayRefund request) {
+        //PaymentMerchantPO merchant = super.getTokenUser();
+        return services.weiXinRefund(request);
+    }
+}

--
Gitblit v1.9.3