微信小程序获取openid(php后台)

微信小程序已经开放了越来越多的功能,所能实现的用户需求也越多了,但是微信提供的wx.getUserInfo()只能获取用户的表面信息,想要是先发送模板消息或者支付功能,就需要获取用户的openid(微信提供给每个微信用户独一无二的识别码);

这里简单介绍用php后台实现获取openid并保存到数据库;

微信的登陆流程是这样的;

微信小程序获取openid(php后台)_第1张图片

首先前端发送请求到服务器:    

wx.login({
        success: function (res) {
          var code = res.code;//发送给服务器的code
          wx.getUserInfo({
            success: function (res) {
              var userNick = res.userInfo.nickName;//用户昵称
              var avataUrl = res.userInfo.avatarUrl;//用户头像地址
              var gender = res.userInfo.gender;//用户性别
              if (code) {
                wx.request({
                  url: 'http://localhost/test/getopenid.php',//服务器的地址,现在微信小程序只支持https请求,所以调试的时候请勾选不校监安全域名
                  data: {
                    code: code,
                    nick: userNick,
                    avaurl: avataUrl,
                    sex: gender,
                  },
                  header: {
                    'content-type': 'application/json'
                  },
                  success: function (res) {
                    console.log(res.data);
                    wx.setStorageSync('name', res.data.name);//将获取信息写入本地缓存
                    wx.setStorageSync('openid', res.data.openid);
                    wx.setStorageSync('imgUrl', res.data.imgurl);
                    wx.setStorageSync('sex', res.data.sex);
                  }
                })
              }
              else {
                console.log("获取用户登录态失败!");
              }
            }
          })
        },
        fail: function (error) {
          console.log('login failed ' + error);
        }
})    

这样就实现了将前端获取的code发送到服务器,code每次获取的都不一样;

服务器getopenid.php代码:

成功实现了获取openid并存入数据库和小程序的本地缓存,不过微信小程序不建议直接将opneid作为值直接返回给小程序端,而是用户实现自己的前后端验证。

你可能感兴趣的:(小程序)