Quantcast
Channel: CSDN博客移动开发推荐文章
Viewing all articles
Browse latest Browse all 5930

微信小程序开发(四)获取用户openid

$
0
0

在小程序里面有两个地方获取用户的openid。
一个是wx.login(OBJECT),第二个是wx.getUserInfo(OBJECT)
这里我使用的是第一种wx.login(OBJECT)

步骤

 wx.login({
  success: function(res) {
    if (res.code) { //  第一步: 获取code
      //发起网络请求
      wx.request({
        url: '后台接口',  // 获取openid
        data: {
          code: res.code
        }
      })
    } else {
      console.log('获取用户登录态失败!' + res.errMsg)
    }
  }
});

后端的实现

后端的实现就是后端调用这个接口:https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
这里写图片描述

/*
 * 根据code获取微信用户的openid
 */
router.get('/api/getWxCode', function(req, res, next) {
    var param = req.query || req.params; 
    var code = param.code;
    var urlStr = 'https://api.weixin.qq.com/sns/jscode2session?appid=' + wxConfig.AppID + '&secret=' + wxConfig.Secret + '&js_code=' + code + '&grant_type=authorization_code';
    request(urlStr, function (error, response, body) {
        if (!error && response.statusCode == 200) {
            var jsBody = JSON.parse(body); 
            jsBody.status = 100;
            jsBody.msg = '操作成功';
            res.end(JSON.stringify(jsBody));
        }
    })
});

具体实例

/**
 * 生命周期函数--监听页面加载
 */
onLoad: function (options) {
  var self = this;
  wx.login({
    success: function (res) {
      if (res.code) {
        //发起网络请求
        wx.request({
          url: 'https://www.hgdqdev.cn/api/getWxCode',
          data: {
            code: res.code
          },
          success: function(res){
            if(res.data.status == 100){
              self.setData({
                openid: res.data.openid
              })
            }
          },
          fail: function(){

          }
        })
      } else {
        console.log('获取用户登录态失败!' + res.errMsg)
      }
    }
  });
},
作者:zhuming3834 发表于2017/6/13 12:05:07 原文链接
阅读:22 评论:0 查看评论

Viewing all articles
Browse latest Browse all 5930

Trending Articles