小程序OpenId与UnionId的区别

OpenID说明

        为了识别用户,每个用户针对每个公众号或小程序等应用会产生一个安全的OpenID,这个OpenID对不同的小程序,微信公众号都是不同的,即同一个用户在不同的小程序,微信公众号对应生成的OpenID是不同的

UnionID说明

        如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 UnionID 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。

对比举例说明

        微信开发平台账号下李四有一个公众号A和小程序B

        张三访问公众号A会生成一个唯一的openidA,访问小程序B会生成一个唯一的openidB

        如果我们现在要确定公众号A的用户张三与小程序B的用户张三是否为同一个用户张三,我们需要用户的unionid来解决这个问题,即unionid是用来确定不同应用下用户的唯一性

OpenID与UnionID的获取

        1.使用wx.login() 获取登录凭证(code)

wx.login({
          //成功放回
          success:(res)=>{
            console.log(res);
            let code=res.code
          }
        })

        2.拿着code+code2Session通过wx.request 来让code换取openid以及unionid

           wx.request({
              url: `https://api.weixin.qq.com/sns/jscode2session?appid=${你的AppID}&secret=1f9465bdebe244b5ad15635e8a655832&js_code=${获取到的code}&grant_type=authorization_code`,
              success:(res)=>{
                console.log(res);//数据如下所示
                userInfo.openid=res.data.openid
                userInfo.unionid=res.data.unionid
                //获取到你的openid
                console.log(userInfo.openid);
              }
            })
          	//得到的数据
            /*{
            "openid":"xxxxxx",
            "session_key":"xxxxx",
            "unionid":"xxxxx",
            "errcode":0,
            "errmsg":"xxxxx"
            }*/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值