xdd 1 týždeň pred
rodič
commit
637d423d8c

+ 18 - 0
fs-admin/src/test/java/com/fs/course/controller/FsCourseDomainNameControllerTest.java

@@ -5,6 +5,7 @@ import cn.hutool.json.JSONUtil;
 import com.fs.FSAdminApplication;
 import com.fs.course.config.RedPacketConfig;
 import com.fs.system.service.ISysConfigService;
+import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
 import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
 import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderV3Request;
 import com.github.binarywang.wxpay.bean.result.WxPayUnifiedOrderResult;
@@ -75,4 +76,21 @@ class FsCourseDomainNameControllerTest {
         log.info("请求结果: {}",order);
     }
 
+    void refund(){
+        WxPayConfig payConfig = new WxPayConfig();
+        payConfig.setAppId("wx961fadab9bcb792b");
+        payConfig.setMchId("1716217886");
+        payConfig.setMchKey("a7Fc5B9dE2h8J3kL4mN6pQ7rS9tU2vW1");
+        payConfig.setPrivateKeyPath("C:\\cert\\1716217886_20250509_cert\\apiclient_key.pem");
+        payConfig.setPrivateCertPath("C:\\cert\\1716217886_20250509_cert\\apiclient_cert.pem");
+        payConfig.setCertSerialNo("4E8BD68BC2BFD37CA58244D660E5FDCCE475D82E");
+        payConfig.setUseSandboxEnv(false);
+        payConfig.setSignType(WxPayConstants.SignType.HMAC_SHA256);
+
+        wxPayService.setConfig(payConfig);
+        WxPayRefundRequest wxPayRefundRequest = new WxPayRefundRequest();
+
+
+    }
+
 }

+ 9 - 1
fs-service-system/src/main/java/com/fs/company/service/impl/CompanyRechargeServiceImpl.java

@@ -4,6 +4,8 @@ import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.db.sql.Order;
 import com.fs.common.core.domain.R;
 import com.fs.common.utils.DateUtils;
 import com.fs.company.constant.PaymentStatus;
@@ -17,6 +19,7 @@ import com.fs.company.mapper.CompanyRechargeOrderMapper;
 import com.fs.company.service.CompanyRechargeOrderService;
 import com.fs.company.vo.CompanyRechargeExportVO;
 import com.fs.company.vo.CompanyRechargeVO;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.fs.company.mapper.CompanyRechargeMapper;
@@ -31,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional;
  * @author fs
  * @date 2021-10-04
  */
+@Slf4j
 @Service
 public class CompanyRechargeServiceImpl implements ICompanyRechargeService
 {
@@ -153,9 +157,13 @@ public class CompanyRechargeServiceImpl implements ICompanyRechargeService
     private CompanyRechargeOrderMapper companyRechargeOrderMapper;
 
     @Override
-    public R payNotify(String orderNo,String transactionId) {
+    public synchronized R payNotify(String orderNo,String transactionId) {
         CompanyRechargeOrder order = companyRechargeOrderMapper.selectByOrderNo(orderNo);
 
+        if(ObjectUtil.equal(order.getPayStatus(),PaymentStatus.SUCCESS.getCode())){
+            log.info("订单已支付!重复付款 {} {}", orderNo,transactionId);
+            R.ok();
+        }
         //修改状态
         order.setPayStatus(PaymentStatus.SUCCESS.getCode());
         order.setTransactionId(transactionId);