Bladeren bron

native支付接入

xdd 4 dagen geleden
bovenliggende
commit
f016860de3

+ 22 - 0
fs-admin/src/test/java/com/fs/course/controller/AdHtmlClickLogServiceImplTest.java

@@ -0,0 +1,22 @@
+package com.fs.course.controller;
+
+
+import com.fs.FSAdminApplication;
+import com.fs.wx.dto.WxPayRequest;
+import com.fs.wx.dto.WxPayResponse;
+import com.fs.wx.service.WxPayService;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.jupiter.api.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import java.math.BigDecimal;
+
+@RunWith(org.springframework.test.context.junit4.SpringRunner.class)
+@SpringBootTest(classes = FSAdminApplication.class)
+@Slf4j
+public class AdHtmlClickLogServiceImplTest {
+
+
+}

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

@@ -0,0 +1,84 @@
+package com.fs.course.controller;
+
+import cn.hutool.core.bean.BeanUtil;
+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.WxPayUnifiedOrderRequest;
+import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderV3Request;
+import com.github.binarywang.wxpay.bean.result.WxPayUnifiedOrderResult;
+import com.github.binarywang.wxpay.bean.result.enums.TradeTypeEnum;
+import com.github.binarywang.wxpay.config.WxPayConfig;
+import com.github.binarywang.wxpay.constant.WxPayConstants;
+import com.github.binarywang.wxpay.exception.WxPayException;
+import com.github.binarywang.wxpay.service.WxPayService;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.jupiter.api.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+@RunWith(org.springframework.test.context.junit4.SpringRunner.class)
+@SpringBootTest(classes = FSAdminApplication.class)
+@Slf4j
+class FsCourseDomainNameControllerTest {
+
+    @Autowired
+    private WxPayService wxPayService;
+
+    @Autowired
+    private ISysConfigService configService;
+    @Test
+    public void nativePay() throws WxPayException {
+        String json = configService.selectConfigByKey("redPacket.config");
+        RedPacketConfig config = JSONUtil.toBean(json, RedPacketConfig.class);
+
+        WxPayConfig payConfig = new WxPayConfig();
+        payConfig.setAppId("wx961fadab9bcb792b");
+        payConfig.setMchId("1716217886");
+        payConfig.setApiV3Key("BLIAwfgnGV0gwUtKOmyv1Kh1sST0z6ls");
+        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);
+
+        WxPayUnifiedOrderV3Request orderV3Request = createOrderV3Request();
+
+        WxPayUnifiedOrderResult result = wxPayService.createOrderV3(TradeTypeEnum.NATIVE,orderV3Request);
+
+        log.info("返回数据: {}",result);
+    }
+
+    private WxPayUnifiedOrderV3Request createOrderV3Request() {
+        WxPayUnifiedOrderV3Request request = new WxPayUnifiedOrderV3Request();
+
+        // 设置订单基本信息
+        WxPayUnifiedOrderV3Request.Amount amount = new WxPayUnifiedOrderV3Request.Amount();
+        amount.setTotal(1); // 金额,单位:分
+        amount.setCurrency("CNY"); // 币种
+
+        request.setAmount(amount);
+        request.setAppid("wx961fadab9bcb792b");
+        request.setMchid("1716217886");
+        request.setDescription("测试"); // 商品描述
+        request.setOutTradeNo("20250621170609"); // 商户订单号
+        request.setNotifyUrl("https://userapp.fbylive.com/app/wxpay/v3TransferNotify"); // 通知地址
+
+        // Native支付需要设置场景信息
+        WxPayUnifiedOrderV3Request.SceneInfo sceneInfo = new WxPayUnifiedOrderV3Request.SceneInfo();
+        sceneInfo.setPayerClientIp("127.0.0.1");
+        request.setSceneInfo(sceneInfo);
+
+        return request;
+    }
+}

+ 2 - 64
fs-service-system/src/main/java/com/fs/wx/pay/config/WxPayProperties.java

@@ -1,8 +1,10 @@
 package com.fs.wx.pay.config;
 
+import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
 @ConfigurationProperties(prefix = "wx.pay")
+@Data
 public class WxPayProperties {
   /**
    * 设置微信公众号或者小程序等的appid
@@ -38,68 +40,4 @@ public class WxPayProperties {
 
   private String notifyUrl;
 
-
-  public String getV3Key() {
-    return v3Key;
-  }
-
-  public void setV3Key(String v3Key) {
-    this.v3Key = v3Key;
-  }
-
-  public String getAppId() {
-    return appId;
-  }
-
-  public void setAppId(String appId) {
-    this.appId = appId;
-  }
-
-  public String getMchId() {
-    return mchId;
-  }
-
-  public void setMchId(String mchId) {
-    this.mchId = mchId;
-  }
-
-  public String getMchKey() {
-    return mchKey;
-  }
-
-  public void setMchKey(String mchKey) {
-    this.mchKey = mchKey;
-  }
-
-  public String getSubAppId() {
-    return subAppId;
-  }
-
-  public void setSubAppId(String subAppId) {
-    this.subAppId = subAppId;
-  }
-
-  public String getSubMchId() {
-    return subMchId;
-  }
-
-  public void setSubMchId(String subMchId) {
-    this.subMchId = subMchId;
-  }
-
-  public String getKeyPath() {
-    return keyPath;
-  }
-
-  public void setKeyPath(String keyPath) {
-    this.keyPath = keyPath;
-  }
-
-  public String getNotifyUrl() {
-    return notifyUrl;
-  }
-
-  public void setNotifyUrl(String notifyUrl) {
-    this.notifyUrl = notifyUrl;
-  }
 }