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

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

使用微信登录就是为了获取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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值