diff --git a/src/main/java/com/dpkj/modules/scanface/wx/config/WxMpProperties.java b/src/main/java/com/dpkj/modules/scanface/wx/config/WxMpProperties.java index 00cf735..8e767fc 100644 --- a/src/main/java/com/dpkj/modules/scanface/wx/config/WxMpProperties.java +++ b/src/main/java/com/dpkj/modules/scanface/wx/config/WxMpProperties.java @@ -11,46 +11,13 @@ import java.util.List; */ @Data @Component -@ConfigurationProperties(prefix = "wx.mp") +@ConfigurationProperties(prefix = "dpkj.wx") public class WxMpProperties { - /** - * 是否使用redis存储access token - */ - private Boolean useRedis = false; - - /** - * redis 配置 - */ - private RedisConfig redisConfig; - - @Data - public static class RedisConfig { - /** - * redis服务器 主机地址 - */ - private String host; - - /** - * redis服务器 端口号 - */ - private Integer port; - - /** - * redis服务器 密码 - */ - private String password; - - /** - * redis 服务连接超时时间 - */ - private Integer timeout; - } /** * 多个公众号配置信息 */ private List configs; - @Data public static class MpConfig { /** @@ -126,48 +93,6 @@ public class WxMpProperties { } - /** - * 访问地址 - */ - private MpUrl url; - - @Data - public static class MpUrl { - /** - * H5地址 - */ - private String h5; - - /** - * 接口地址 - */ - private String server; - } - - /** - * 模板消息id - */ - private MpTemplate template; - - @Data - public static class MpTemplate { - /** - * 缴费通知 - */ - private String payMsg; - - /** - * 流程待办 - */ - private String test; - - /** - * 流程待办 - */ - private String test2; - - } - /** * 微信商户支付配置 */ @@ -250,4 +175,22 @@ public class WxMpProperties { } + + + /** + * 访问地址 + */ + private MpUrl url; + @Data + public static class MpUrl { + /** + * H5地址 + */ + private String h5; + + /** + * 接口地址 + */ + private String server; + } } 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 2145d08..d7e53c1 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 @@ -19,6 +19,7 @@ import javax.annotation.Resource; import java.io.UnsupportedEncodingException; import java.security.Provider; import java.security.Security; +import java.util.HashMap; import java.util.Map; import java.util.TreeSet; @@ -66,8 +67,6 @@ public class WxpayFaceTestController { WxFacePayResp wxFacePayResp = weChatPayFaceService.doWxPayIniMethod(wxFacePayReq); System.out.println("**************2、获取数据:"+wxFacePayResp.toString()); - - String rawdata = wxFacePayResp.getRawdata(); return Result.ok(wxFacePayResp); } @@ -80,15 +79,17 @@ public class WxpayFaceTestController { */ @RequestMapping(value = "/getWxpayfaceAuthinfo", method = RequestMethod.POST) public Result> getWxpayfaceAuthinfo() throws Exception { + Map wxFacePayResp = new HashMap<>(); // 构建请求参数的JSON字符串 WxFacePayReq wxFacePayReq = new WxFacePayReq("getWxpayfaceRawdata","1",System.currentTimeMillis()/1000); WxFacePayResp wxFacePayResp1 = weChatPayFaceService.doWxPayIniMethod(wxFacePayReq); - System.out.println("**************2、获取数据返回值:"+wxFacePayResp1.toString()); - String rawdata = wxFacePayResp1.getRawdata(); - - // 构建请求参数的JSON字符串 - Map wxFacePayResp = weChatPayFaceService.getWxFaceAuthInfoReqMap(rawdata); - System.out.println("**************333:"+wxFacePayResp.toString()); + System.out.println("**************2、获取数据getWxpayfaceRawdata:"+wxFacePayResp1.toString()); + if("SUCCESS".equals(wxFacePayResp1.getReturn_code())){ + String rawdata = wxFacePayResp1.getRawdata(); + // 构建请求参数的JSON字符串 + wxFacePayResp= weChatPayFaceService.getWxFaceAuthInfoReqMap(rawdata); + System.out.println("**************2、获取调用凭证get_wxpayface_authinfo:"+wxFacePayResp.toString()); + } return Result.ok(wxFacePayResp); } diff --git a/src/main/java/com/dpkj/modules/scanface/wx/dll/WxpayFaceSDKDll.java b/src/main/java/com/dpkj/modules/scanface/wx/dll/WxpayFaceSDKDll.java index 7860de0..295f6c5 100644 --- a/src/main/java/com/dpkj/modules/scanface/wx/dll/WxpayFaceSDKDll.java +++ b/src/main/java/com/dpkj/modules/scanface/wx/dll/WxpayFaceSDKDll.java @@ -5,7 +5,7 @@ import com.sun.jna.Native; import lombok.extern.slf4j.Slf4j; /** - * @description: + * @description: 32位的WxpayFaceSDK: /resources/win32-x86/WxpayFaceSDK.dll * @author: Zhangxue * @time: 2025/4/17 17:02 */ diff --git a/src/main/java/com/dpkj/modules/scanface/wx/service/CallWxpayFaceService.java b/src/main/java/com/dpkj/modules/scanface/wx/service/CallWxpayFaceService.java index fee65ef..d83b271 100644 --- a/src/main/java/com/dpkj/modules/scanface/wx/service/CallWxpayFaceService.java +++ b/src/main/java/com/dpkj/modules/scanface/wx/service/CallWxpayFaceService.java @@ -1,5 +1,6 @@ package com.dpkj.modules.scanface.wx.service; + import com.dpkj.modules.scanface.wx.dll.WxpayFaceSDKDll; import java.io.UnsupportedEncodingException; 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 08ebb01..79dce3a 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,15 +56,17 @@ public class CallWxpayFaceServiceImpl implements CallWxpayFaceService { // 调用本地方法 WxpayFaceSDKDll.Dll dll = WxpayFaceSDKDll.instance(); - int result =dll.wxpayCallFaceService(reqPointer.getString(0), reqSize, pRespBuf, respSize); + 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]); byte[] byteArray = pointer.getByteArray(0, respSize[0]); resStr = new String(byteArray, StandardCharsets.UTF_8); System.out.println("-----------调用服务成功结果: " + resStr); - //释放 dll.wxpayReleaseResponse(new String[2]); + //释放 C:\Windows\System32目录下 WxpayFaceSDK.INSTANCE.wxpayReleaseResponse(new String[2]); } else { Pointer pointer = new Pointer(pRespBuf[0]); byte[] byteArray = pointer.getByteArray(0, respSize[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 73d9c1c..f2bbfc7 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 @@ -51,11 +51,8 @@ public class WeChatPayFaceServiceImpl implements WeChatPayFaceService { //赋值 - private static WxMpProperties wxMpProperties; - - public static void setWxMpConfiguration(WxMpProperties wxMpProperties) { - WeChatPayFaceServiceImpl.wxMpProperties = wxMpProperties; - } + @Autowired + private WxMpProperties wxMpProperties; /** @@ -93,6 +90,8 @@ public class WeChatPayFaceServiceImpl implements WeChatPayFaceService { // 调用本地方法 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); log.info("[WeChatPayFaceServiceImpl][doWxPayIniMethod][95] DLL 返回码: {}", result); if (result == 0) { Pointer pointer = new Pointer(pRespBuf[0]); @@ -102,6 +101,8 @@ public class WeChatPayFaceServiceImpl implements WeChatPayFaceService { System.out.println("-----------调用服务成功结果: " + resStr); //释放 dll.wxpayReleaseResponse(new String[2]); + + //释放 C:\Windows\System32目录下 WxpayFaceSDK.INSTANCE.wxpayReleaseResponse(new String[2]); } else { Pointer pointer = new Pointer(pRespBuf[0]); byte[] byteArray = pointer.getByteArray(0, respSize[0]); diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index e5ea8b5..12a9ee7 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -42,6 +42,50 @@ dpkj: partner-id: 2088641941653700 # 核心入参 serviceId service-id: pay + #微信模块 + wx: + configs: #清研家 + - app-id: wxe8334dd2140bb0e1 + # 公众号的appsecret + secret: f83420d79cc6ecd1d7fe9684ac9cdfe4 + # 接口配置里的Token值 + token: dpkjylwjvote + # 接口配置里的EncodingAESKey值 + aes-key: go2uM3ASe2rEyeoNsZHoPCiKGgpku0Bi49P5IypdQWT + mch-config: #商户信息 清研家关联的商户:驿路万家-扬州清研软件科技 + app-id: wxe8334dd2140bb0e1 + secret: f83420d79cc6ecd1d7fe9684ac9cdfe4 + #调用接口所需service_id + service-id: service_id + #商户号 + mch-id: 1557642321 + #商户秘钥 + mch-key: yndpkj15288216506YndpkjKsjytZx12 + #报文解密 APIv3密钥 + v3-key: yndpkj15288216506YndpkjKsjytZx12 + #微信: 商户APIv2密钥 + key-api: yndpkj15288216506YndpkjKsjytZx12 + #p12证书的位置,可以指定绝对路径,也可以指定类路径(以classpath;开头) + key-path: classpath:test\apiclient_cert.p12 + private-key-path: classpath:test\apiclient_key.pem + private-cert-path: classpath:test\apiclient_cert.pem + #微信:商家api序列号 + mch-serial-no: + #JSAPI--公众号支付 NATIVE--原生扫码支付 APP--app支付 + trade-type: JSAPI + trade-type-native: NATIVE + #支付回调方法地址 + pay-notify-url: ${dpkj.url.server-url}/openapi/wxPayOrderApi/notify + #退款回调方法地址 + refund-notify-url: ${dpkj.url.server-url}/openapi/wxPayOrderApi/refundNotify + # 路径 + url: + # 后端接口地址 + # server: https://102760424tfyw.vicp.fun/api + server: ${dpkj.url.server-url} + # h5地址 + h5: ${dpkj.url.h5-url} + # 自定义app参数 app: diff --git a/src/main/resources/application-pro.yml b/src/main/resources/application-pro.yml index 274d741..db19070 100644 --- a/src/main/resources/application-pro.yml +++ b/src/main/resources/application-pro.yml @@ -43,6 +43,49 @@ dpkj: partner-id: 2088641941653700 # 核心入参 serviceId service-id: pay + #微信模块 + wx: + configs: # 清研家 + - app-id: wxc12fa4977f66974d #wxc12fa4977f66974d #wx024903d1d2e1a55a + # 公众号的appsecret + secret: a51dbcac25a73d7e4812a43cf550c5fc #f83420d79cc6ecd1d7fe9684ac9cdfe4 + # 接口配置里的Token值 DPKJ-YINYITONG #DPKJ-YINYITONG#dpkjylwjvote + token: DPKJ-YINYITONG + # 接口配置里的EncodingAESKey值 + aes-key: yIBgBrHwRGjO2L3CLIE9hmnlf1FrXQQ7qJZVIg4r6Dx + mch-config: #商户信息 驿路万家-扬州清研软件科技 + app-id: wxc12fa4977f66974d + secret: f83420d79cc6ecd1d7fe9684ac9cdfe4 + #调用接口所需service_id + service-id: service_id + #商户号 + mch-id: 1557642321 + #商户秘钥 + mch-key: yndpkj15288216506YndpkjKsjytZx12 + #报文解密 APIv3密钥 + v3-key: yndpkj15288216506YndpkjKsjytZx12 + #微信: 商户APIv2密钥 + key-api: yndpkj15288216506YndpkjKsjytZx12 + #p12证书的位置,可以指定绝对路径,也可以指定类路径(以classpath;开头) + key-path: classpath:test\apiclient_cert.p12 + private-key-path: classpath:test\apiclient_key.pem + private-cert-path: classpath:test\apiclient_cert.pem + #微信:商家api序列号 + mch-serial-no: + #JSAPI--公众号支付 NATIVE--原生扫码支付 APP--app支付 + trade-type: JSAPI + trade-type-native: NATIVE + #支付回调方法地址 + pay-notify-url: ${dpkj.url.server-url}/openapi/wxPayOrderApi/notify + #退款回调方法地址 + refund-notify-url: ${dpkj.url.server-url}/openapi/wxPayOrderApi/refundNotify + # 路径 + url: + # 后端接口地址 + # server: https://102760424tfyw.vicp.fun/api + server: ${dpkj.url.server-url} + # h5地址 + h5: ${dpkj.url.h5-url} # 自定义app参数 app: diff --git a/src/main/resources/win32-x86-64/WxpayFaceSDK.dll b/src/main/resources/win32-x86-64/WxpayFaceSDK.dll deleted file mode 100644 index e69de29..0000000 diff --git a/src/main/resources/win32-x86/WxpayFaceSDK.dll b/src/main/resources/win32-x86/WxpayFaceSDK.dll new file mode 100644 index 0000000..4163d97 Binary files /dev/null and b/src/main/resources/win32-x86/WxpayFaceSDK.dll differ