关于微信小程序unionID、OpenID的区别,以及如何获取

看图

 

问:

 

1:小程序里面为什么要使用OpenID,有什么意义?

 

2:小程序既然有了OpenID,为何还要unionID?

 

答:请参考以下做法,如有不对地方请指出

 

1:微信小程序为什么会有OpenID,其实在微信小程序里面OpenID,就代表着我们一个人,拥有一个身份证一样的东西,在我们不知道某个人的情况下,可通过OpenID来进行查询某个用户,当然OpenID不是我们自己生成的,而是前端通过微信提供的API wx.login({})得到一个code,再拿这个code去调用我们自己后台的接口,后台再获得到这个code再去调用微信的方法,获取到sessionKey,OpenID,就是这么简单。

 

2:小程序里面unionID的作用,其实unionID和OpenID在本质上是没有任何区别的,但是如果一个在同一个公众号下面使用多个小程序(注意必须是在同一主体公众号下面绑定的小程序)的时候,这时候OpenID将会是不一样的,此时此刻将会用到unionID,因为unionID只要是在同一主体下面,unionID这个值永远是一样的,可以用来判断是否为同一个人,当然如何获取unionID,获取unionID的方式和OpenID的方式是不一样的请看以下步骤:1、用户授权之后调用wx.getUserInfo({}),

 

2:获取unionId,调用wx.getUserInfo方法之后,获取到encryptedData、iv、rawData、signature这几个值,传给后台进行解码获取到unionId,获取unionId的步骤就是这么简单!

 

 

转自:https://developers.weixin.qq.com/community/develop/doc/000cc49e0b0478e5a1f7b9c9d51004

要在微信小程序获取用户的 OpenID,你可以通过调用微信登录接口来实现。以下是一个简单的示例代码: 1. 在小程序的相关页面或组件中引入微信登录 API: ```javascript // 在页面或组件的js文件中引入微信登录 API const app = getApp(); // 获取小程序实例 // 调用微信登录接口获取用户的 OpenID wx.login({ success: res => { if (res.code) { // 发送 res.code 到后台换取 openId, sessionKey, unionId wx.request({ url: 'https://api.weixin.qq.com/sns/jscode2session', data: { appid: app.globalData.appId, // 小程序的 AppID secret: app.globalData.appSecret, // 小程序的 AppSecret js_code: res.code, grant_type: 'authorization_code' }, success: res => { console.log(res.data); // 在这里可以获取到用户的 openId const openId = res.data.openid; // 将 openId 存储在本地或发送到服务器进行处理 }, fail: err => { console.error(err); } }); } else { console.error('微信登录失败:' + res.errMsg); } }, fail: err => { console.error(err); } }); ``` 2. 在小程序的 app.js 文件中,将 AppID 和 AppSecret 存储在全局变量中: ```javascript App({ onLaunch: function () { // 将小程序的 AppID 和 AppSecret 存储在全局变量中 this.globalData = { appId: 'YourAppID', appSecret: 'YourAppSecret' }; } }); ``` 请注意,获取 OpenID 需要在小程序的后台服务器进行处理,你需要在服务器端获取到微信返回的 sessionKey 和 openId,并进行相应的处理。上述代码仅仅是在小程序获取到了 OpenID,你还需要将 OpenID 发送到服务器端进行进一步的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值