微信小程序獲取用戶openid (Nodejs)

微信小程序須要獲取用戶的openid來做爲用戶的惟一身份認證,用來存儲和更新對應客戶信息。 以Node後臺爲例, 前臺發出請求後,後臺轉發訪問對應的微信接口來獲取openid.前端

1. 小程序前端請求:小程序

getUserInfo: function(e) {
  app.globalData.userInfo = e.detail.userInfo
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
    wx.login({
      success: res => {
        app.globalData.usercode = res.code    //1. 獲取usercode做爲後面獲取openid的參數
      }
    })

      var id=null
    id=wx.getStorageSync('openid')
    if (!id)
    {

      wx.request({
        url: getOpenId, //set in config .js  //2.後臺API
        method: "POST",
        data: {
          js_code: app.globalData.usercode,
        }, success(res) {
          var openId = res.data.openid
          var sessionKey = res.data.session_key
          console.log(res)
          wx.setStorageSync("openid", openId)
          app.globalData.openId = openId
          if (!!openId) {      //3.獲取到openid後的處理,能夠依照本身的邏輯寫
            app.globalData.openId = openId
            wxlogin(openId)
          }
        }
      })
    }

    
  }
})

2. Node JS 後臺獲取openid:微信小程序

router.post('/wxgetOpenId', function (req, res, next) {  
  var data=req.body
  var APP_URL='https://api.weixin.qq.com/sns/jscode2session'
  var APP_ID='wxXXXXXXXXX'   //小程序的app id ,在公衆開發者後臺能夠看到
  var APP_SECRET='8ad6f0XXXXXXXXXXXX'  //程序的app secrect,在公衆開發者後臺能夠看到

  var resData=null 
  var thisRes=res
  if(!!data.js_code)
  {
 
    request(`${APP_URL}?appid=${APP_ID}&secret=${APP_SECRET}&js_code=${data.js_code}&grant_type=authorization_code`, (error, response, body)=>{
      console.log('statusCode:', response && response.statusCode)
      console.log(body)
      res.end(body)})
 
  }
})
相關文章
相關標籤/搜索