小程序开发文档:https://mp.weixin.qq.com/debug/wxadoc/dev/
参考文章:http://www.jb51.net/article/117352.htm
微信小程序登录获取用户信息
WeChaConnView.java
@RestController
@RequestMapping(value = "/wechat")
public class WeChaConnView {
/**
* 解密用户敏感数据
*
* @param encryptedData 明文,加密数据
* @param iv 加密算法的初始向量
* @param code 用户允许登录后,回调内容会带上 code(有效期五分钟),开发者需要将 code 发送到开发者服务器后台,使用code 换取 session_key api,将 code 换成 openid 和 session_key
* @return
*/
@ResponseBody
@RequestMapping(value = "/decodeUser", method = RequestMethod.POST)
public DataResponse decodeUser(@RequestParam("encryptedData")String encryptedData,
@RequestParam("iv")String iv,
@RequestParam("code")String code) {
DataResponse response = new DataResponse();
Map<String, Object> map = new HashMap<>();
//登录凭证不能为空
if (code == null || code.length() == 0) {
/*map.put("status", 0);
map.put("msg", "code 不能为空");
return map;*/
response.setResult_code("failed");
response.setResult_msg("code 不能为空");
return response;
}
//小程序唯一标识 (在微信小程序管理后台获取)
String wxspAppid = "xxxxxx";
//小程序的 app secret (在微信小程序管理后台获取)
String wxspSecret = "xxxxxx";
//授权(必填)
String 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);
//解析相应内容(转换成json对象)
Gson gson = new Gson();
JsonObject json = gson.fromJson(sr, JsonObject.class);
System.out.println(json);
// JSONObject json = JSONObject.fromObject(sr);
if (json.get("session_key") == null) {
/*map.put("status", 0);
map.put("msg", "解密失败");
return map;*/
response.setResult_code("failed");
response.setResult_msg("解密失败:" + json.get("errmsg").toString().replaceAll("\"", ""