小程序端
login: function(){
console.log("000");
wx.login({
success (res) {
if(res.code) {
//发起网络请求
wx.request({
url: 'http://localhost:80/api/login',
data: {
code: res.code
},
method: 'POST'
})
} else {
console.log('登录失败' + res.errMsg)
}
}
})
}
java后台端接口
@RestController
@Slf4j
@RequestMapping("/api")
public class wxUserController {
@Autowired
private wxService wxService;
@PostMapping("/login")
public String login(@RequestBody JSONObject jsonObject){
String code = jsonObject.getString("code");
String appid = "wxef7f237293454165";
String secret = "1be98a07330728247bc786adb81534b2";
//创建 httpClient对象
CloseableHttpClient httpclient = HttpClients.createDefault();
String resultString = "";
CloseableHttpResponse response = null;
String url= "https://api.weixin.qq.com/sns/jscode2session?appid="+appid+"&secret="+secret+"&js_code="+code+"&grant_type=authorization_code";
try{
//创建uri
URIBuilder builder = new URIBuilder(url);
URI uri = builder.build();
//创建http get请求
HttpGet httpGet = new HttpGet(uri);
//执行请求
response = httpclient.execute(httpGet);
//判断返回状态是否为 200
if(response.getStatusLine().getStatusCode() == 200){
resultString = EntityUtils.toString(response.getEntity(),"UTF-8");
}
}catch(Exception e){
e.printStackTrace();
}
//解析json
JSONObject jsonObject1 = (JSONObject) JSONObject.parse(resultString);
String session_key = jsonObject1.get("session_key")+"";
String openid = jsonObject1.get("openid")+"";
System.out.println("session_key=="+session_key);
System.out.println("openid=="+openid);
return resultString;
}
}
后台端借鉴的 别人博客链接:
后端代码
pom文件
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.7</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.29</version>
</dependency>