• 微信小程序获取用户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)})
     
      }
    })
    
    
  • 相关阅读:
    groovy的效率问题
    强大的模板引擎开源软件NVelocity
    每个人应该知道的NVelocity用法
    NVelocity语法常用指令
    CS0016: 未能写入输出文件“c:WINDOWSMicrosoft.NETFramework.。。”--“拒绝访问
    C# 数组基础知识
    c#中的 数组
    网络编程之webclient和httpwebrequest的使用
    HttpWebRequest和WebClient的区别
    C#如何使用SplitContainer控件实现上下分隔
  • 原文地址:https://www.cnblogs.com/Aaron-Lee/p/11374651.html
Copyright © 2020-2023  润新知