微信小程序登陆
https://mp.weixin.qq.com/wxamp/
在开发管理的开发设置里拿到AppID(小程序ID),和AppSecret(小程序密钥)
更改后端yml文件:
wx: app-id: 填写AppID(小程序ID) app-secret: 填写AppSecret(小程序密钥)
进入service层添加:
@Service public class UserService { @Value("${wx.app-id}") private String appId; @Value("${wx.app-secret}") private String appSecret; private String getOpenId(String code){ /** * @param code: 微信的临时凭证 * @return String * @author Gavin * @description 通过微信的临时凭证获取OpenId * @created 2022/2/13 12:11 **/ String url = "https://api.weixin.qq.com/sns/jscode2session"; HashMap map = new HashMap(); map.put("appid", appId); map.put("secret", appSecret); map.put("js_code", code); map.put("grant_type", "authorization_code"); String response = HttpUtil.post(url, map); JSONObject json = JSONUtil.parseObj(response); String openId = json.getStr("openid"); return openId; } public String test(TestReq req){ String openId = getOpenId(req.getCode()); return openId; } }
controller层:
@PostMapping("test") public R test(@RequestBody TestReq req){ return R.ok().put("code", userService.test(req)); }
来到前端
在manifest.json里,选择微信小程序配置,在微信小程序AppId下填写AppId
前端:
<template> <view> <view> <button @click="button">GULAO</button> </view> </view> </template> <script> export default { data() { return { title: 'Hello' } }, onLoad() { }, methods: { button(){ let that = this; uni.login({ provider: "weixin", success: function(resp) { let code=resp.code console.log(code); uni.getUserProfile({ desc: '获取用户信息', success: function (resp) { // this.loading; let nickName = resp.userInfo.nickName; let avatarUrl = resp.userInfo.avatarUrl; console.log(resp) var data = { "code":code, "nickName":nickName, "avatarUrl":avatarUrl } uni.request({ url: "http://localhost:8080/user/test", data:data, method:"POST", success: (res) => { console.log(res); }, fail: function(e) { console.log('error in...') // reject调用后,即可传递到调用方使用catch或者async+await同步方式进行处理逻辑 } }) } }) } }) } }, } </script> <style> </style>
注意⚠️:
更改请求网址,localhost处填写所处wifi的IP,localhost后面的端口也要填
需要运行到微信小程序,并且使用真机调试,不然无法取得数据
Warning: Undefined variable $aria_req in /www/wwwroot/l.lvovl.cn/wp-content/themes/JieStyle-Two-master/comments.php on line 26
Warning: Undefined variable $aria_req in /www/wwwroot/l.lvovl.cn/wp-content/themes/JieStyle-Two-master/comments.php on line 27
Warning: Undefined variable $aria_req in /www/wwwroot/l.lvovl.cn/wp-content/themes/JieStyle-Two-master/comments.php on line 28