最近有个小程序的项目 需要前端传code 后端获取openid 这里是纯后端
在这里记录一下吧
主要代码:
这里是获取openid的实现类
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.moszk.frame.basic.utils.HttpRequest;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
public class WeiXinSubmitController {
@ResponseBody
@RequestMapping(value = "/wx/decodeUserInfo", method = RequestMethod.GET)
public Map decodeUserInfo(String code) {
System.out.println(code);
Map map = new HashMap();
//登录凭证不能为空
if (code == null || code.length() == 0) {
map.put("status", 0);
map.put("msg", "code 不能为空");
return map;
}
//小程序唯一标识 (在微信小程序管理后台获取)
String wxspAppid = "***********";
//小程序的 app secret (在微信小程序管理后台获取)
String wxspSecret = "*********************";
//授权(必填)
String grant_type = "authorization_code";
//https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
//1、向微信服务器 使用登录凭证 code 获取 session_key 和 openid
//请求参数
String params = "appid=" + wxspAppid + "&secret=" + wxspSecret + "&js_code=" + code + "&grant_type=" + grant_type;
//发送请求
String sr = HttpRequest.sendGet("https://api.weixin.qq.com/sns/jscode2session", params);
System.out.println("sr========"+sr);
//解析相应内容(转换成json对象)
JSONObject json =JSON.parseObject(sr