From d8a103e909e1f30f0b7a12c336cde851c079d646 Mon Sep 17 00:00:00 2001 From: LegnaYet <1023868505@qq.com> Date: Mon, 27 Apr 2020 17:14:05 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=A8=E5=BA=97=E5=8F=B7=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ic/wx/controller/WechatController.java | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/main/java/com/kiisoo/ic/wx/controller/WechatController.java diff --git a/src/main/java/com/kiisoo/ic/wx/controller/WechatController.java b/src/main/java/com/kiisoo/ic/wx/controller/WechatController.java new file mode 100644 index 0000000..3c4a41b --- /dev/null +++ b/src/main/java/com/kiisoo/ic/wx/controller/WechatController.java @@ -0,0 +1,71 @@ +package com.kiisoo.ic.wx.controller; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.kiisoo.ic.base.entity.BasicConfigDO; +import com.kiisoo.ic.base.mapper.BasicConfigDOMapper; +import com.kiisoo.ic.common.BaseController; +import com.kiisoo.ic.common.utils.httpClientUtil.HttpClientUtil; +import com.kiisoo.ic.common.utils.httpClientUtil.HttpResult; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.HashMap; +import java.util.Map; + +@Controller +@RequestMapping("/wechat") +public class WechatController extends BaseController { + + + @Autowired + private BasicConfigDOMapper basicConfigDOMapper; + + + @RequestMapping("/openId") + @ResponseBody + public Map openId(String code) { // 小程序端获取的CODE + Map result = new HashMap<>(); + result.put("code", 0); + try { + QueryWrapper baseParams1 = new QueryWrapper<>(); + baseParams1.eq("code", "MINIPROGRAM_CONF"); + baseParams1.eq("conf_key", "APPID"); + BasicConfigDO basicConfigDO1 = basicConfigDOMapper.selectOne(baseParams1); + QueryWrapper baseParams2 = new QueryWrapper<>(); + baseParams2.eq("code", "MINIPROGRAM_CONF"); + baseParams2.eq("conf_key", "SECRET"); + BasicConfigDO basicConfigDO2 = basicConfigDOMapper.selectOne(baseParams2); + + + boolean check = (StringUtils.isEmpty(code)) ? true : false; + if (check) { + throw new Exception("参数异常"); + } + StringBuilder urlPath = new StringBuilder("https://api.weixin.qq.com/sns/jscode2session"); // 微信提供的API,这里最好也放在配置文件 + urlPath.append(String.format("?appid=%s", basicConfigDO1.getConfValue())); + urlPath.append(String.format("&secret=%s", basicConfigDO2.getConfValue())); + urlPath.append(String.format("&js_code=%s", code)); + urlPath.append(String.format("&grant_type=%s", "authorization_code")); // 固定值 + + HttpResult data = HttpClientUtil.httpGet(urlPath.toString()); + //http返回参数 + if (JSONObject.parseObject(data.getMessage()).get("errcode").equals("0")) { + String openid = JSONObject.parseObject(data.getMessage()).get("openid").toString(); + String sessionKey = JSONObject.parseObject(data.getMessage()).get("session_key").toString(); + String unionid = JSONObject.parseObject(data.getMessage()).get("unionid").toString(); + + result.put("openId", openid); + result.put("sessionKey", sessionKey); + result.put("unionid", unionid); + } + return data(result); + } catch (Exception e) { + e.printStackTrace(); + } + return fail(); + } +}