欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索:   农业种植  农业  安全设置  织梦
258资源分享 > 建站学院 > 微信开发 > 小程序微信登陆获取openid和unionid

推荐下载

html5响应式外贸网站英文版

2020-05-08   浏览:270

高端HTML5响应式企业通用网

2020-05-06   浏览:235

HTML5自适应律师工作室类网

2020-04-04   浏览:234

响应式建筑工程装修施工

2020-01-14   浏览:232

响应式电子元件电路板类

2020-01-10   浏览:230

小程序微信登陆获取openid和unionid

发布时间:2020-11-22  

基于微信生态的产品,微信登陆、模版消息、微信支付、微信分享已经成为标准配置,可以依赖微信强大的用户基础和庞大的社交网络来实现业务目标。

使用微信登录就是为了获取openid和用户的基本信息如昵称、头像、性别、所在城市这些内容。如果为了保持多个产品线的用户统一的话,还需要unionid这个大神器,前提是把APP、小程序、公众号、网站这些内容绑定到微信开放平台,访问 open.weixin.qq.com。否则是获取不到unionid。

获取openid有两种方式 
方式一 
1、调用wx.login(),获取code

 

wx.login({

success: function (res) {

console.log(res.code)

}

})

2、调用wx.request() 根据code、appid、secret这三个参数获取openid,建议appid、secret在后台设置,不要网络上传输,通过wx.request()只要把code传后台即可

方式二  1、调用wx.getUserInfo() 获取encryptedData(加密数据),iv(加密算法的初始向量)

 

wx.getUserInfo({

withCredentials:true,

success:function(res){

var userInfo = res.userInfo

var nickName = userInfo.nickName

var avatarUrl = userInfo.avatarUrl

var gender = userInfo.gender

var province = userInfo.province

var city = userInfo.city

var country = userInfo.country

var iv = userInfo.iv

var encryptedData = userInfo.encryptedData

}

})

2、把返回的数据iv、encryptedData进行解密获取openid,这种方式在能获取openid的同时,也能获取到unionid,获取到的数据如下所示

 

{

"openId": "OPENID",

"nickName": "NICKNAME",

"gender": "GENDER",

"city": "CITY",

"province": "PROVINCE",

"country": "COUNTRY",

"avatarUrl": "AVATARURL",

"unionId": "UNIONID",

"watermark": {

"appid": "APPID",

"timestamp": "TIMESTAMP"

}

}

微信官方提供了AES解密的demo有PHP、C++、Node、Python,有一期会专门讲,悟空来全栈营小程序组提供了一个JAVA版本,在获取微信转发群ID的时候也要用到。

注:wx.getUserInfo()默认是获取不到iv和encryptedData的,需要请求的参数中设置withCredentials为true