微信小程序 官方API:https://mp.weixin.qq.com/debug/wxadoc/dev/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