IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 微信小程序+SSM后端获取openid,用getUserProfile -> 正文阅读

[移动开发]微信小程序+SSM后端获取openid,用getUserProfile

这篇主要是用来记录具体实现方法的,算是在网上查了很久东拼西凑的半成品吧,为什么是半成品呢,因为没有对数据进行分类,算是做了一半,因为我想用的unionID但是这个方法只能获取openID,所以就不想做全了,验证可以获取数据就ok了,剩下的是比较简单的问题。

直接上代码
微信小程序端js

suibianshenme:function(){
    

    //第一步获取授权,得到用户的openid和unionid
    wx.getUserProfile({
      desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
      success: (res) => {
      
        wx.login({
          success: res =>{
              let code = res.code //这里获取的就是登陆的code,可以传送给后端来换取openid和unionid      
              wx.request({
                url: 'https://你服务器的链接',
                data:{
                  code:code                  
                },
                method:'GET',
                header:{
                  'content-type':'application/json'
                },
                success (res) {
                  console.log(res);   //这里获取的res中就有你要的信息了,我只得到了openid                 
                },
                fail:function(res){
                  console.log("失败了");
                }      
              })          
       }
      })
      }
    })  
  }

微信端就这么简单,因为getUserInfo做了修改不能直接用了,所以改用了getUserProfile,获取授权,然后wx.login用来获取code,然后用wx.request把这个code传给后端的服务器,服务器再根据这个code获取到我想要的用户信息,包含openid、unionid,(但是我只获取到了openid)

下面是java后端SSM下的Controller层代码

@ResponseBody
	@RequestMapping(value="wxhqsq.action",produces = "text/plain;charset=utf-8")
	public String getUid(String code,HttpServletRequest request) {
		
		String appid="你的微信小程序appID";
		String appsecret="你的微信小程序appSecret";
		//code就是传进来的参数code
		//下面这个链接就是用来返回数据的接口地址
		String url="https://api.weixin.qq.com/sns/jscode2session?appid="+appid+"&secret="+appsecret+"&js_code="+code+"&grant_type=authorization_code";
		
		//进行网络请求
		RestTemplate restTemplate = new RestTemplate();
		ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.GET, null, String.class);
		//根据返回值进行后续操作
		if(responseEntity != null && responseEntity.getStatusCode() == HttpStatus.OK) {
	            String sessionData = responseEntity.getBody();
	            return sessionData;
			}else {
				return "nothing to got";
			}
	}

你可以在后端把获得的sessionData用Json处理一下然后把有用的数据传回前端,这里就不写了。

用这个方法比较好的地方就是不需要解码,可以直接获取openid等数据。我看看是不是有什么地方不对,为什么没有unionid,然后再更。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章           查看所有文章
加:2021-10-07 13:57:32  更:2021-10-07 13:59:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:26:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码