小程序获取unionid标识

在微信小程序中,因为各种各样的原因我们会需要获取到用户的openid或者unionid下面就简单来讲一下在小程序中如何获取openidunionid

步骤一:微信登录获取登录凭证

wx.login({
  success: res => {
    // 微信临时登录凭证
    let _code = res.code;
    // 进行网络访问,将 _code 提交给服务端,服务端返回 openid 和 unionid,
    // 服务端对 _code 的处理机制参照 步骤二
    ......
  },
  fail: res => {
    toast.show({ content: '微信登录失败' });
  }
 });  

 调用微信小程序的 wx.login()可以获取到微信登录的临时凭证,此凭证将用于下面获取 openid 以及 unionid

步骤二:将获取的登录凭证提交后台,获取 openid 与 unionid

如何使用登录凭证(注意:下方代码仅用于讲解凭证使用方法以及在调试中快捷获取 openid 以及unionid,不可在正式开发中使用)
wx.request({
  // 通过此 url ,获取 openid 与 unionid
  url: 'https://api.weixin.qq.com/sns/jscode2session',
  data: {
       // 小程序的appid
       'appid': appId,
       // 小程序的secret
       'secret': appSecret,
       // wx.login()返回的登录凭证
       'js_code': jscode,
       // 固定值,不需要改变
       'grant_type': 'authorization_code'
   },
  success: res => {
      // 返回的 openid
      console.log(res.data.openid);
      // 返回的会话密钥
      console.log(res.data.session_key);
      // 注意:上面两个字段值必定会返回,unionid 则只会在满足一定条件下返回,不是必定会返回的值
      console.log(res.data.unionid);
   }
 });     

注意!注意!注意!===>   
1、上方代码,仅仅用于讲述如何通过登录凭证获取 openid 和 unionid 以及在调试中如何快速获取 openid 和unionid,  
   并不能在正式开发中在客户端使用,微信不支持正式的线上产品访问 'https://api.weixin.qq.com/sns/jscode2session' !!!
2、在正式开发中,必须将获取的登录凭证(js_code)提交给服务端,由服务端访问  
      'https://api.weixin.qq.com/sns/jscode2session'  
   获取 openid 和 unionid,在返回给客户端
unionid的获取

上述已经说明,openid是必定能得到的值,unionid则需要满足一定条件才会返回,下面就讲述一下unionid的几种获取条件!

1、调用接口wx.getUserInfo接口,从返回的加密数据 encryptedData中获取unionid,此方法仍然需要将登录凭证传递给服务端,服务端通过上述方法获取session_key,帮助客户端解密加密数据,详细方法点我 
wx.getUserInfo的返回数据 
2、微信开放平台中,绑定小程序,此时同一开发者账号下,如果用户关注过此账号下的微信公众号或者授权登录过此账号下的微信公众号或者移动应用,则满足unionid获取条件,在步骤二中会返回unionid(缺一不可,必须访问至少两个应用,例:小程序+公众号,小程序+移动应用)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值