From ae0a0e5145d4eb1b31970084b44981fb8182ff8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Fri, 7 Mar 2025 18:17:16 +0800 Subject: [PATCH] =?UTF-8?q?openId=E8=8E=B7=E5=8F=96=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/UserAuthorizationServiceImpl.java | 2 +- .../service/account/util/WechatAuthUtil.java | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/UserAuthorizationServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/UserAuthorizationServiceImpl.java index 64c5ea6f..5b60aa6a 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/UserAuthorizationServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/UserAuthorizationServiceImpl.java @@ -40,7 +40,7 @@ public class UserAuthorizationServiceImpl implements UserAuthorizationService { log.info(code); String openId; if (UserAuthSourceEnum.WECHAT.getValue().equals(source)) { - openId = wechatAuthUtil.getSessionKeyOrOpenId(code, true); + openId = wechatAuthUtil.getAccountOpenId(code); }else { openId = alipayUtil.getOpenId(code, true); } diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/util/WechatAuthUtil.java b/cash-service/account-service/src/main/java/com/czg/service/account/util/WechatAuthUtil.java index ebc819ed..57ef79b6 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/util/WechatAuthUtil.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/util/WechatAuthUtil.java @@ -47,6 +47,25 @@ public class WechatAuthUtil { } + public String getAccountOpenId(String code) { + String requestUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?"; + Map requestUrlParam = new HashMap<>(); + // https://mp.weixin.qq.com/wxopen/devprofile?action=get_profile&token=164113089&lang=zh_CN + //小程序appId + requestUrlParam.put("appid", accountAppId); + //小程序secret + requestUrlParam.put("secret", accountSecrete); + //小程序端返回的code + requestUrlParam.put("code", code); + //默认参数 + requestUrlParam.put("grant_type", "authorization_code"); + log.info("微信获取openid请求报文:{}", requestUrlParam); + //发送post请求读取调用微信接口获取openid用户唯一标识 + String resp = HttpUtil.post(requestUrl, requestUrlParam); + log.info("响应报文{}", resp); + return JSONObject.parseObject(resp).getString("openid"); + } + public String getSessionKeyOrOpenId(String code, boolean isAccount) { String requestUrl = "https://api.weixin.qq.com/sns/jscode2session"; Map requestUrlParam = new HashMap<>();