diff --git a/play-admin/pom.xml b/play-admin/pom.xml
index 72f433a..0a4847c 100644
--- a/play-admin/pom.xml
+++ b/play-admin/pom.xml
@@ -94,6 +94,12 @@
jave-nativebin-linux64
+
+ com.github.binarywang
+ weixin-java-pay
+ 4.5.0
+
+
com.tencentcloudapi
tencentcloud-sdk-java-dnspod
diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxPlayController.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxPlayController.java
index 7697343..eae33a4 100644
--- a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxPlayController.java
+++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxPlayController.java
@@ -3,42 +3,35 @@ package com.starry.admin.modules.weichat.controller;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
-import cn.hutool.core.util.XmlUtil;
-import com.github.wxpay.sdk.WXPayUtil;
+import com.alibaba.fastjson2.JSONObject;
+import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse;
+import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
+import com.github.binarywang.wxpay.bean.result.WxPayUnifiedOrderResult;
+import com.github.binarywang.wxpay.exception.WxPayException;
+import com.github.binarywang.wxpay.service.WxPayService;
+import com.github.binarywang.wxpay.util.SignUtils;
import com.starry.admin.common.aspect.CustomUserLogin;
import com.starry.admin.common.conf.ThreadLocalRequestDetail;
import com.starry.admin.common.exception.CustomException;
-import com.starry.admin.common.play.wx.WeChatConstants;
-import com.starry.admin.common.play.wx.WxCustomPayUtils;
-import com.starry.admin.modules.balance.service.IPlayBalanceDetailsInfoService;
import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity;
import com.starry.admin.modules.custom.service.IPlayCustomUserInfoService;
+import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity;
import com.starry.admin.modules.order.service.IPlayOrderInfoService;
import com.starry.admin.modules.platform.entity.SysTenantEntity;
import com.starry.admin.modules.platform.service.impl.SysTenantServiceImpl;
-import com.starry.admin.modules.weichat.entity.WxPayReturnVo;
+import com.starry.admin.modules.weichat.service.WxCustomMpService;
import com.starry.admin.utils.SecurityUtils;
import com.starry.common.result.R;
import com.starry.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.dom4j.Document;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.BufferedReader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
import java.math.BigDecimal;
-import java.nio.charset.StandardCharsets;
-import java.time.LocalDateTime;
-import java.time.ZoneOffset;
-import java.util.Map;
-import java.util.SortedMap;
-import java.util.TreeMap;
+import java.util.*;
/**
* @author admin
@@ -48,19 +41,14 @@ import java.util.TreeMap;
@RequestMapping("/wx/pay/")
public class WxPlayController {
-
@Resource
private SysTenantServiceImpl tenantService;
-
-
@Resource
private IPlayCustomUserInfoService customUserInfoService;
-
- @Resource
- private IPlayBalanceDetailsInfoService playBalanceDetailsInfoService;
-
@Resource
private IPlayOrderInfoService orderInfoService;
+ @Resource
+ private WxCustomMpService mpService;
/**
@@ -70,35 +58,67 @@ public class WxPlayController {
* @since 2024/5/8 11:25
**/
@GetMapping("/jsCallback")
- public void jsCallback(HttpServletRequest request, HttpServletResponse response) throws Exception {
- // 读取回调数据
- InputStream inputStream = request.getInputStream();
- StringBuilder sb = new StringBuilder();
- String s;
- BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
- while ((s = in.readLine()) != null) {
- sb.append(s);
- }
- in.close();
- inputStream.close();
+ public String wxPayNotify(@RequestBody String xmlData) {
+ log.info("****************接受到微信支付回调:{}", xmlData);
+ this.dealNotify(xmlData);
- // 解析xml成map
- Map m = XmlUtil.xmlToMap(sb.toString());
- // 过滤空 设置 TreeMap
- SortedMap