微信小程序登陆过程
![](https://uploadfiles.nowcoder.com/files/20190807/3176628_1565154982243_api-login.2fcc9f35.jpg)
1.在小程序的前端向后端发送code
wx.login({ success(res) { if (res.code) { //发起网络请求 //console.log("globalData="+app.globalData.baseurl) wx.request({ url: app.globalData.baseurl+'wxlogin_customer', data: { "code": res.code }, header: { "Content-Type": "application/json" }, method: "POST", success: (res => { console.log(res); }), fail: (res => { console.log("fail"); }) }) } else { console.log('fail') } } })
2.1 工具类
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.util.List; /** * Created by HDL on 2019/08/04.zs */ public class WxUserinfoUtils { private static final String KEY_APP_ID = "wx9f09ab9783fc7508"; private static final String KEY_SECRETKEY = "b76f3f2dd60338d75571574a03e02847"; public static String getOppenid(String code) { String params = "appid=" + KEY_APP_ID + "&secret=" + KEY_SECRETKEY + "&js_code=" + code + "&grant_type=authorization_code"; String url = "https://api.weixin.qq.com/sns/jscode2session?" + params; String result = ""; BufferedReader in = null; try { String urlNameString = url; URL realUrl = new URL(urlNameString); // 打开和URL之间的连接 URLConnection connection = realUrl.openConnection(); // 设置通用的请求属性 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 建立实际的连接 connection.connect(); // 获取所有响应头字段 java.util.Map<String, List<String>> map = connection.getHeaderFields(); // 遍历所有的响应头字段 for (String key : map.keySet()) { System.out.println(key + "--->" + map.get(key)); } // 定义 BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { e.printStackTrace(); } // 使用finally块来关闭输入流 finally { try { if (in != null) { in.close(); } } catch (Exception e2) { e2.printStackTrace(); } } return result; } }