zoukankan      html  css  js  c++  java
  • 微信小程序获取用户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)})
     
      }
    })
    
    
  • 相关阅读:
    .net core web
    ASP.NET HttpContext类
    页面周期与事件
    (49) C# npoi 读写office
    vs2017 vs2019秘钥
    HDU 2767 Proving Equivalences(强连通 Tarjan+缩点)
    【bzoj1013】[JSOI2008]球形空间产生器sphere
    P1979 [NOIP]华容道
    hdu4352 XHXJ's LIS(数位DP + LIS + 状态压缩)
    hdu3709 Balanced Number 树形dp
  • 原文地址:https://www.cnblogs.com/Aaron-Lee/p/11374651.html
Copyright © 2011-2022 走看看