微信小程序中获取用户的唯一标识openid,用于做业务判断处理

Posted Acmen-zym

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序中获取用户的唯一标识openid,用于做业务判断处理相关的知识,希望对你有一定的参考价值。

我是小程序加载时就调用,执行顺序如下:
1、进入小程序时会调用onLoad,onLoad函数是监听页面加载的;
2、在onLoad引用wx.login,获取一个临时访问code,当前code有效时间为5分钟,并且只能使用一次;
3、将code传入后端,在后端访问https://api.weixin.qq.com/sns/jscode2session?appid=APP_ID&secret=SECRET&js_code=code&grant_type=authorization_code链接,获取openId并且关联用户;

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) 
    var tempThis = this;
    wx.login(
      success: function (res) 
        wx.request(
          url: 'https://127.0.0.1/student/getStudentJointInfo', //接口地址
          data:  wxId: res.code ,//res.code就是当前调用wx.login生成的,有效时间5分钟
          success: function (d) 
            if (d.data == null || d.data == "") 
              tempThis.setData( hiddenmodalput: false, wxId: res.code );//意味着没有关联需要进行关联
              console.log(d.data);
             else 
              tempThis.setData( phoneNum: d.data, wxId: res.code );//意味着没有关联需要进行关联
            
          
        );
      
    );
  ,

后端访问代码

    /**
     * 获取微信用户唯一标识ID
     *
     * @param wxId 也就是wx.login生成的code,有效时间五分钟,只能使用一次
     * @return 验证成功则返回openid,失败则为null
     */
    public static String getOpenId(String wxId) 
        String url = new StringBuilder("https://api.weixin.qq.com/sns/jscode2session?appid=").append(APP_ID)
                .append("&secret=").append(SECRET)
                .append("&js_code=").append(wxId).append("&grant_type=authorization_code").toString();
        String body = OkHttpClientUtil.getBody(url, 8L, new HashMap<>());
        JSONObject jsonObject = JSONObject.fromObject(body);
        if (!jsonObject.containsKey("openid")) return null;
        return jsonObject.getString("openid");
    

以上是关于微信小程序中获取用户的唯一标识openid,用于做业务判断处理的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序获取用户openid(详解)

微信小程序获取用户openid(详解)

微信小程序获取用户手机号详解

一直没明白小程序的openid是啥作用是啥

微信小程序用户授权登录

微信小程序获取用户openid