微信小程序 官方API:https://mp.weixin.qq.com/debug/wxadoc/dev/api/json
首先 如下代碼是 頁面加載請求用戶 是否贊成受權 贊成以後 用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 有個地方須要注意一下 小程序開發者工具 有一個配置api
這個配置 若是打開 不驗證域名 均可以訪問微信
可是 這只是開發者工具 能夠訪問 以及手機預覽 能夠訪問session
若是放到正式版的環境 或者說 測試版的環境 那麼 是不能夠訪問除了 設置好的域名之外 全部的域名 須要將 微信接口 (https://api.weixin.qq.com) 設置到 小程序白名單中 不然 獲取不到OpenId 返回undefinedapp