package com.hhsx.minigame.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.hhsx.minigame.constant.Constant; import com.hhsx.minigame.entity.User; import com.hhsx.minigame.service.UserService; import com.hhsx.minigame.utils.HttpKit; import com.hhsx.minigame.utils.HttpRespMsg; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringEscapeUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; import java.util.Date; /** *
* 前端控制器 *
* * @author 吴涛涛 * @since 2019-09-18 */ @RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; /** * 微信授权登录 * 参数: * type:授权类型,0-微信,1-微博 * code:平台返回的code值 * * @return */ @ApiOperation("微信/微博网页授权") @RequestMapping(value = "weiXinLogin") @ResponseBody public Object weiXinLogin(@RequestParam String code, Integer type, HttpServletResponse response) throws Exception, KeyManagementException, NoSuchAlgorithmException, NoSuchProviderException, IOException { HttpRespMsg msg = new HttpRespMsg(); if (type == 0) { String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + Constant.WECHAT_APPID + "&secret=" + Constant.WECHAT_APPSECRET + "&code=" + code + "&grant_type=authorization_code"; String resp = HttpKit.get(url, true); resp = StringEscapeUtils.unescapeJava(resp); System.out.println(resp); JSONObject json = (JSONObject) JSON.parse(resp); if (!json.containsKey("errcode")) { String openId = json.getString("openid"); String accessToken = json.getString("access_token"); User user = new User(); user.setType(type); user.setVoucherId(openId); String url1 = "https://api.weixin.qq.com/sns/userinfo?access_token="+accessToken+"&openid="+openId+"&lang=zh_CN"; //获取用户基本信息 resp = HttpKit.get(url1, true); resp = StringEscapeUtils.unescapeJava(resp); System.out.println(resp); json = (JSONObject) JSON.parse(resp); if(!json.containsKey("errcode")){ user.setNickName(json.getString("nickname")); user.setHeaderPic(json.getString("headimgurl")); } QueryWrapper