2023 Java和微信小程序登录获取手机号 【springboot接口三步走】
①第一个通过微信小程序第一个code获取openid(②第二个java后端获取 access_token(openid第一个接口获取的。code微信上第二个code。获取微信小程序的第一次的code,传给后端第一个接口。获取微信小程序的第二次的code。获取APPID和 SECRET。③第三个获取手机号(注意: code共分两次获取,两次不一致。
·
微信小程序准备工作:
获取微信小程序的第一次的code,传给后端第一个接口
获取微信小程序的第二次的code
注意: code共分两次获取,两次不一致
Java后端准备工作:
获取APPID和 SECRET
Java三个方法详情以及调用:
①第一个 通过微信小程序第一个code获取openid(微信小程序调用)
public JSONObject getWXSessionKey(String code) {
String APPID = "你的APPID";
String SECRET = "你的SECRET";
//拼接微信官方的url来获取openid
String urlResult= HttpRequestUrlUtil.httpGet("https://api.weixin.qq.com/sns/jscode2session?appid=" + APPID + "&secret=" + SECRET + "&js_code=" + code + "&grant_type=authorization_code");
//转为json
JSONObject jsonObject = JSON.parseObject(urlResult);
return jsonObject;
}
②第二个 java后端获取 access_token(后端调用)
(在第三个接口中复用,也可以直接写在第三个接口中)
public JSONObject getWXAccessToken() {
String APPID = "你的APPID ";
String SECRET = "你的SECRET ";
//拼接微信官方的url来获取access_token
String urlResult= HttpRequestUrlUtil.httpGet("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + APPID + "&secret=" + SECRET);
//转为json
JSONObject jsonObject = JSON.parseObject(urlResult);
return jsonObject;
}
③第三个 获取手机号(微信小程序调用)
参数解析:
openid第一个接口获取的
code微信上第二个code
public Store storelogin(String openId, String code) throws IOException {
//获取当前登录的商家
QueryWrapper<Store> storeQueryWrapper = new QueryWrapper<>();
Store queryStore = storeService.getOne(storeQueryWrapper.eq("open_id", openId));
HashMap hashMap = new HashMap<>();
//判断当前登录的商家是否存在,登录成功,
if (queryStore != null) {
return queryStore;
} else {
//不存在新增并登录
Store store = new Store();
//根据微信官方链接 获取access_token(这里是复用第二个接口)
String getAccessTokenUrl = HttpRequestUrlUtil.httpGet("http://localhost:9023/exploringstores/login/getWXAccessToken");
//转为json格式
JSONObject jsonObject = JSON.parseObject(getAccessTokenUrl);
String access_token = jsonObject.getString("access_token");
//根据微信官方链接 获取手机号
String getPhoneNumberUrl = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + access_token;
JSONObject json = new JSONObject();
json.put("code", code);
json = URLConnection.postResponse(getPhoneNumberUrl, json);
String phoneNumber = json.getJSONObject("phone_info").getString("phoneNumber");
//存储手机号
store.setPhoneNumber(phoneNumber);
//存储openId
store.setOpenId(openId);
//保存店铺
storeService.save(store);
//返回对象
return store;
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)