博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信小程序 获取OpenId
阅读量:4572 次
发布时间:2019-06-08

本文共 3307 字,大约阅读时间需要 11 分钟。

 

微信小程序 官方API:

首先 以下代码是 页面加载请求用户 是否同意授权 同意之后 用code 访问 微信接口 拿到OpenId

//页面加载 微信授权var getInfo = function (thisObj){  var that = thisObj;  wx.login({    success: function (res) {      if (res.code) {        //获取openId        wx.request({          url: 'https://api.weixin.qq.com/sns/jscode2session',          data: {       //小程序唯一标识            appid: '',        //小程序的 app secret            secret: '',            grant_type: 'authorization_code',            js_code: res.code          },          method: 'GET',          header: { 'content-type': 'application/json'},          success: function(openIdRes){              console.info("登录成功返回的openId:" + openIdRes.data.openid);              weChatUserInfo.openId = openIdRes.data.openid;              // 判断openId是否获取成功              if (openIdRes.data.openid != null & openIdRes.data.openid != undefined) {
        // 有一点需要注意 询问用户 是否授权 那提示 是这API发出的 wx.getUserInfo({ success: function (data) { // 自定义操作 // 绑定数据,渲染页面 that.setData({ }); }, fail: function (failData) { console.info("用户拒绝授权"); } }); }else { console.info("获取用户openId失败"); } }, fail: function(error) { console.info("获取用户openId失败"); console.info(error); } }) } } });}

以下是 手动配置 打开 微信授权

//手动打开微信授权var getInfoAgain = function (thisObj){  var that = thisObj;  wx.openSetting({    success: function (data) {      //判断 用户是否同意授权      if (data.authSetting["scope.userInfo"] == true) {        // 同意授权        wx.login({          success: function (res) {            if (res.code) {              console.info("登录成功返回的CODE:" + res.code);              //获取openId              wx.request({                url: 'https://api.weixin.qq.com/sns/jscode2session',                data: {                  // 小程序唯一标示                  appid: '',                  // 小程序的 app secret                  secret: '',                  grant_type: 'authorization_code',                  js_code: res.code                },                method: 'GET',                header: { 'content-type': 'application/json' },                success: function (openIdRes) {                  // 获取到 openId                  console.log(openIdRes.data.openid);                  // 判断openId是否为空                  if (openIdRes.data.openid != null & openIdRes.data.openid != undefined) {                    wx.getUserInfo({                      success: function (data) {                        // 自定义操作                        // 绑定数据,渲染页面                        that.setData({                                                  });                      }                    })                  }else {                    // openId为空                  }                }              })            }          }        });      }else {           // 手动 开启 是否授权提示框后 拒绝      }    }  });}

//TODO 有个地方需要注意一下 小程序开发者工具 有一个配置

这个配置 如果打开 不验证域名 都可以访问

但是 这只是开发者工具 可以访问 以及手机预览 可以访问

如果放到正式版的环境 或者说 测试版的环境 那么 是不可以访问除了 设置好的域名以外 所有的域名 需要将 微信接口 (https://api.weixin.qq.com) 设置到 小程序白名单中 否则 获取不到OpenId 返回undefined

 

转载于:https://www.cnblogs.com/yi1036943655/p/6928286.html

你可能感兴趣的文章
Linux下NFS服务器的搭建与配置
查看>>
1501 二叉树最大宽度和高度
查看>>
真事儿!——我们官网被全站拷贝了!
查看>>
抽象类及抽象方法
查看>>
Canvas基本绘画学习
查看>>
Django ORM 最后操作
查看>>
HDU 1050(贪心)
查看>>
java设计模式之代理模式
查看>>
spring心得2--bean的生命周期@Spring监听器的作用@Spring初始化容器案例分析@web项目使用...
查看>>
顺序栈
查看>>
Rsync详解
查看>>
【每日一读】Java编程中“为了性能”尽量要做到的一些地方
查看>>
什么是内网、什么是公网、什么是NAT
查看>>
【堆/排序】堆排序的两种建堆方法
查看>>
类的内置方法
查看>>
项目中使用的第三方开源库
查看>>
NOIP2009 潜伏者
查看>>
本地预览的vue项目,在githubpage静态展示
查看>>
SC命令---安装、开启、配置、关闭 cmd命令行和bat批处理操作windows服务
查看>>
Register Form Code
查看>>