From 9a8be430916bb90f0ba40eb4390597768a57c119 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E9=9B=AA?= <1044122544@qq.com> Date: Mon, 18 Aug 2025 18:37:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E5=88=B7=E8=84=B8=EF=BC=9A?= =?UTF-8?q?=E5=A4=8D=E5=88=B6=E8=87=AA=E5=8A=A9=E6=9C=BA=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wx/controller/WxFacePayController.java | 16 +++++------ .../controller/WxpayFaceTestController.java | 6 ---- .../wx/service/WeChatPayFaceService.java | 1 - .../impl/CallWxpayFaceServiceImpl.java | 1 - .../impl/WeChatPayFaceServiceImpl.java | 15 ++-------- .../modules/scanface/wx/util/WXPayUtil.java | 11 ++------ .../scanface/wx/util/XmlParserUtil.java | 2 ++ .../modules/scanface/wx/vo/WxFaceOrderVo.java | 4 ++- src/main/resources/application-pro.yml | 28 +++++++++---------- src/main/resources/application.yml | 25 +++++++++++++++-- 10 files changed, 54 insertions(+), 55 deletions(-) diff --git a/src/main/java/com/dpkj/modules/scanface/wx/controller/WxFacePayController.java b/src/main/java/com/dpkj/modules/scanface/wx/controller/WxFacePayController.java index 4226bc1..cd26376 100644 --- a/src/main/java/com/dpkj/modules/scanface/wx/controller/WxFacePayController.java +++ b/src/main/java/com/dpkj/modules/scanface/wx/controller/WxFacePayController.java @@ -18,7 +18,6 @@ import com.dpkj.modules.scanface.wx.vo.WxFacePayAuthinfoResp; import com.dpkj.modules.scanface.wx.vo.WxFacePayReq; import com.dpkj.modules.scanface.wx.vo.WxFacePayResp; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; import com.github.binarywang.wxpay.bean.request.WxPayOrderReverseRequest; import com.github.binarywang.wxpay.bean.result.WxPayMicropayResult; import com.github.binarywang.wxpay.bean.result.WxPayOrderQueryResult; @@ -34,16 +33,9 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.io.UnsupportedEncodingException; -import java.util.HashMap; +import java.math.BigDecimal; import java.util.Map; -import java.util.concurrent.Callable; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; /** * @description: 微信刷脸支付 @@ -79,6 +71,10 @@ public class WxFacePayController { public Result doFacePay(@RequestBody WxFaceOrderVo wxFaceOrderVo) throws Exception { Result result = new Result<>(); try { + //元转分 + int money = new BigDecimal(wxFaceOrderVo.getTotalAmount()).multiply(new BigDecimal(100)).intValue(); + wxFaceOrderVo.setTotalAmount(String.valueOf(money)); + //1 初始化 this.initWxpayface(); @@ -95,6 +91,7 @@ public class WxFacePayController { WxPayMicropayResult micropayResult = new WxPayMicropayResult(); if (StringUtil.isNotBlank(authinfoResp.getFace_code())) { //5、调用后台人脸支付API发起支付 + System.out.println("---------调用后台人脸支付API发起支付"); wxFaceOrderVo.setOutTradeNo(getOutTradeNo()); micropayResult = this.toCreateWxOrder(authinfoResp, wxFaceOrderVo, wxFacePayResp0); @@ -184,6 +181,7 @@ public class WxFacePayController { public WxFacePayAuthinfoResp getWxpayfaceCode(@RequestBody WxFaceOrderVo wxFaceOrderVo, WxFacePayAuthinfoResp wxFacePayResp0) throws Exception { //4、进行人脸识别getWxpayfaceCode(获取支付凭证) String outTradeNo = getOutTradeNo();//获取流水号 + // 构建请求参数的JSON字符串 WxFacePayReq wxFacePayReq = new WxFacePayReq("getWxpayfaceCode", "1", System.currentTimeMillis() / 1000); wxFacePayReq.setAuthinfo(wxFacePayResp0.getAuthinfo()) diff --git a/src/main/java/com/dpkj/modules/scanface/wx/controller/WxpayFaceTestController.java b/src/main/java/com/dpkj/modules/scanface/wx/controller/WxpayFaceTestController.java index c67c878..1db78e2 100644 --- a/src/main/java/com/dpkj/modules/scanface/wx/controller/WxpayFaceTestController.java +++ b/src/main/java/com/dpkj/modules/scanface/wx/controller/WxpayFaceTestController.java @@ -4,8 +4,6 @@ import com.dpkj.common.vo.Result; import com.dpkj.modules.scanface.wx.dll.WxpayFaceSDKDll; import com.dpkj.modules.scanface.wx.service.CallWxpayFaceService; import com.dpkj.modules.scanface.wx.service.WeChatPayFaceService; -import com.dpkj.modules.scanface.wx.service.impl.CallWxpayFaceServiceImpl; -import com.dpkj.modules.scanface.wx.service.impl.WeChatPayFaceServiceImpl; import com.dpkj.modules.scanface.wx.vo.WxFacePayAuthinfoResp; import com.dpkj.modules.scanface.wx.vo.WxFacePayReq; import com.dpkj.modules.scanface.wx.vo.WxFacePayResp; @@ -15,15 +13,11 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import org.thymeleaf.util.StringUtils; import javax.annotation.Resource; import java.io.UnsupportedEncodingException; -import java.nio.charset.StandardCharsets; import java.security.Provider; import java.security.Security; -import java.util.HashMap; -import java.util.Map; import java.util.TreeSet; /** diff --git a/src/main/java/com/dpkj/modules/scanface/wx/service/WeChatPayFaceService.java b/src/main/java/com/dpkj/modules/scanface/wx/service/WeChatPayFaceService.java index 88e3cd3..8732e6d 100644 --- a/src/main/java/com/dpkj/modules/scanface/wx/service/WeChatPayFaceService.java +++ b/src/main/java/com/dpkj/modules/scanface/wx/service/WeChatPayFaceService.java @@ -7,7 +7,6 @@ import com.dpkj.modules.scanface.wx.vo.WxFacePayResp; import com.fasterxml.jackson.core.JsonProcessingException; import java.io.UnsupportedEncodingException; -import java.util.Map; /** * @description: 调用微信刷脸方法 diff --git a/src/main/java/com/dpkj/modules/scanface/wx/service/impl/CallWxpayFaceServiceImpl.java b/src/main/java/com/dpkj/modules/scanface/wx/service/impl/CallWxpayFaceServiceImpl.java index d5ce7d9..614a488 100644 --- a/src/main/java/com/dpkj/modules/scanface/wx/service/impl/CallWxpayFaceServiceImpl.java +++ b/src/main/java/com/dpkj/modules/scanface/wx/service/impl/CallWxpayFaceServiceImpl.java @@ -56,7 +56,6 @@ public class CallWxpayFaceServiceImpl implements CallWxpayFaceService { // 调用本地方法 WxpayFaceSDKDll.Dll dll = WxpayFaceSDKDll.instance(); int result = dll.wxpayCallFaceService(reqPointer.getString(0), reqSize, pRespBuf, respSize); - //使用C:\Windows\System32目录下 int result = WxpayFaceSDK.INSTANCE.wxpayCallFaceService(reqPointer.getString(0), reqSize, pRespBuf, respSize); if (result == 0) { Pointer pointer = new Pointer(pRespBuf[0]); diff --git a/src/main/java/com/dpkj/modules/scanface/wx/service/impl/WeChatPayFaceServiceImpl.java b/src/main/java/com/dpkj/modules/scanface/wx/service/impl/WeChatPayFaceServiceImpl.java index 757dccd..554b6bc 100644 --- a/src/main/java/com/dpkj/modules/scanface/wx/service/impl/WeChatPayFaceServiceImpl.java +++ b/src/main/java/com/dpkj/modules/scanface/wx/service/impl/WeChatPayFaceServiceImpl.java @@ -10,13 +10,10 @@ import com.dpkj.modules.scanface.wx.util.WXPayUtil; import com.dpkj.modules.scanface.wx.util.WxRandomUtils; import com.dpkj.modules.scanface.wx.util.XmlParserUtil; import com.dpkj.modules.scanface.wx.util.XmlUtils; -import com.dpkj.modules.scanface.wx.vo.WxFacePayAuthinfoResp; -import com.dpkj.modules.scanface.wx.vo.WxFacePayMicroPayResp; -import com.dpkj.modules.scanface.wx.vo.WxFacePayOrderResp; -import com.dpkj.modules.scanface.wx.vo.WxFacePayReq; -import com.dpkj.modules.scanface.wx.vo.WxFacePayResp; +import com.dpkj.modules.scanface.wx.vo.*; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.binarywang.wxpay.constant.WxPayConstants; import com.sun.jna.Memory; import com.sun.jna.Pointer; import lombok.extern.slf4j.Slf4j; @@ -27,16 +24,10 @@ import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; -import com.github.binarywang.wxpay.constant.WxPayConstants; import java.io.UnsupportedEncodingException; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Base64; -import java.util.List; -import java.util.Map; -import java.util.SortedMap; -import java.util.TreeMap; +import java.util.*; /** * @description: 调用微信刷脸方法 diff --git a/src/main/java/com/dpkj/modules/scanface/wx/util/WXPayUtil.java b/src/main/java/com/dpkj/modules/scanface/wx/util/WXPayUtil.java index 4b4674f..2d60657 100644 --- a/src/main/java/com/dpkj/modules/scanface/wx/util/WXPayUtil.java +++ b/src/main/java/com/dpkj/modules/scanface/wx/util/WXPayUtil.java @@ -3,19 +3,12 @@ package com.dpkj.modules.scanface.wx.util; import org.jdom2.Content; import org.jdom2.Document; import org.jdom2.Element; + import javax.xml.bind.DatatypeConverter; - - import java.io.StringReader; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.SortedMap; -import java.util.TreeMap; +import java.util.*; /** * @description: 生成签名 diff --git a/src/main/java/com/dpkj/modules/scanface/wx/util/XmlParserUtil.java b/src/main/java/com/dpkj/modules/scanface/wx/util/XmlParserUtil.java index fe5d4e9..f825578 100644 --- a/src/main/java/com/dpkj/modules/scanface/wx/util/XmlParserUtil.java +++ b/src/main/java/com/dpkj/modules/scanface/wx/util/XmlParserUtil.java @@ -1,6 +1,8 @@ package com.dpkj.modules.scanface.wx.util; + import org.w3c.dom.Document; import org.w3c.dom.Node; + import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.xpath.XPath; diff --git a/src/main/java/com/dpkj/modules/scanface/wx/vo/WxFaceOrderVo.java b/src/main/java/com/dpkj/modules/scanface/wx/vo/WxFaceOrderVo.java index 204e17b..e5aef2b 100644 --- a/src/main/java/com/dpkj/modules/scanface/wx/vo/WxFaceOrderVo.java +++ b/src/main/java/com/dpkj/modules/scanface/wx/vo/WxFaceOrderVo.java @@ -36,8 +36,10 @@ public class WxFaceOrderVo { private String outTradeNo; /** - * 用户支付金额 分 + * 用户支付金额 单位元 + * 调用微信时需要转为分 */ private String totalAmount; + } diff --git a/src/main/resources/application-pro.yml b/src/main/resources/application-pro.yml index b30be86..b802208 100644 --- a/src/main/resources/application-pro.yml +++ b/src/main/resources/application-pro.yml @@ -67,27 +67,27 @@ dpkj: service-id: pay #微信模块 wx: - configs: #清研家 - - app-id: wxe8334dd2140bb0e1 + configs: #中医院 + - app-id: wxc12fa4977f66974d # 公众号的appsecret - secret: f83420d79cc6ecd1d7fe9684ac9cdfe4 + secret: a51dbcac25a73d7e4812a43cf550c5fc # 接口配置里的Token值 - token: dpkjylwjvote + token: DPKJYINYITONG # 接口配置里的EncodingAESKey值 - aes-key: go2uM3ASe2rEyeoNsZHoPCiKGgpku0Bi49P5IypdQWT - mch-config: #商户信息 清研家关联的商户:驿路万家-扬州清研软件科技 - app-id: wxe8334dd2140bb0e1 - secret: f83420d79cc6ecd1d7fe9684ac9cdfe4 + aes-key: yIBgBrHwRGjO2L3CLIE9hmnlf1FrXQQ7qJZVIg4r6Dx + mch-config: #商户信息 中医院 + app-id: wxc12fa4977f66974d + secret: a51dbcac25a73d7e4812a43cf550c5fc #调用接口所需service_id service-id: service_id #商户号 - mch-id: 1557642321 + mch-id: 1603658732 #商户秘钥 - mch-key: yndpkj15288216506YndpkjKsjytZx12 + mch-key: lczyywxc12fa4977f66974dyytzz1234 #报文解密 APIv3密钥 - v3-key: yndpkj15288216506YndpkjKsjytZx12 + v3-key: lczyywxc12fa4977f66974dyytzz1234 #微信: 商户APIv2密钥 - key-api: yndpkj15288216506YndpkjKsjytZx12 + key-api: lczyywxc12fa4977f66974dyytzz1234 #p12证书的位置,可以指定绝对路径,也可以指定类路径(以classpath;开头) key-path: classpath:test\apiclient_cert.p12 private-key-path: classpath:test\apiclient_key.pem @@ -105,9 +105,9 @@ dpkj: url: # 后端接口地址 # server: https://102760424tfyw.vicp.fun/api - server: ${dpkj.server-url} + server: ${dpkj.url.server-url} # h5地址 - h5: ${dpkj.h5-url} + h5: ${dpkj.url.h5-url} # 身份证读取等待时间 diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 0371f70..3cee4a4 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,6 +1,27 @@ spring: + servlet: + multipart: + max-file-size: 10MB + max-request-size: 10MB + resource: + static-locations: classpath:/static/,classpath:/public/ application: - name: yinyitong-zhongyuyuan-dll-hang + name: ems-express-bridge profiles: - active: '@profile.name@' + #active: '@profile.name@' + active: pro +server: + port: 5948 #5946 + servlet: + context-path: /api + tomcat: + max-swallow-size: -1 + error: + include-exception: true + include-stacktrace: ALWAYS + include-message: ALWAYS + compression: + enabled: true + min-response-size: 1024 + mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/*