From 764d883b5ea3bdc06abbec548b6df0511e567978 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Tue, 03 Sep 2024 09:46:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/binlog' into binlog
---
src/main/java/org/springblade/modules/wechat/service/impl/WechatServiceImpl.java | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 60 insertions(+), 0 deletions(-)
diff --git a/src/main/java/org/springblade/modules/wechat/service/impl/WechatServiceImpl.java b/src/main/java/org/springblade/modules/wechat/service/impl/WechatServiceImpl.java
new file mode 100644
index 0000000..6f9b9d4
--- /dev/null
+++ b/src/main/java/org/springblade/modules/wechat/service/impl/WechatServiceImpl.java
@@ -0,0 +1,60 @@
+package org.springblade.modules.wechat.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springblade.common.config.WxMiniConfig;
+import org.springblade.common.exception.CustomException;
+import org.springblade.common.utils.HttpClientUtils;
+import org.springblade.common.utils.SpringUtils;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.modules.pay.entity.WeChatMiniAuthorizeVo;
+import org.springblade.modules.system.entity.User;
+import org.springblade.modules.system.service.IUserService;
+import org.springblade.modules.wechat.service.WechatService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+@Service
+public class WechatServiceImpl implements WechatService {
+
+ private static final Logger logger = LoggerFactory.getLogger(WechatServiceImpl.class);
+
+ @Resource
+ private WxMiniConfig wxMiniConfig;
+
+ /**
+ * 小程序登录凭证校验
+ *
+ * @return 小程序登录校验对象
+ */
+ @Override
+ public WeChatMiniAuthorizeVo miniAuthCode(String code) {
+ String url = StrUtil.format(wxMiniConfig.getJscode2sessionUrl(), wxMiniConfig.getAppid(), wxMiniConfig.getSecret(), code);
+ JSONObject data = JSON.parseObject(HttpClientUtils.doGet(url));
+ if (ObjectUtil.isNull(data)) {
+ logger.error("微信平台接口异常,没任何数据返回!");
+ throw new CustomException("微信平台接口异常,没任何数据返回!");
+ }
+ if (data.containsKey("errcode") && !data.getString("errcode").equals("0")) {
+ if (data.containsKey("errmsg")) {
+ logger.error("微信接口调用失败:" + data.getString("errcode") + data.getString("errmsg"));
+ throw new CustomException("微信接口调用失败:" + data.getString("errcode") + data.getString("errmsg"));
+ }
+ }
+ WeChatMiniAuthorizeVo weChatMiniAuthorizeVo = JSONObject.parseObject(data.toJSONString(), WeChatMiniAuthorizeVo.class);
+ // 绑定用户openid
+ Long userId = AuthUtil.getUserId();
+ IUserService userService = SpringUtils.getBean(IUserService.class);
+ userService.update(Wrappers.<User>lambdaUpdate().set(User::getMiniOpenId, weChatMiniAuthorizeVo.getOpenId()).eq(User::getId, userId));
+ return weChatMiniAuthorizeVo;
+ }
+
+
+}
+
--
Gitblit v1.9.3