小程序调试时,突然发现获取到的用户昵称变成“微信用户”和头像也非用户微信头像了,原因是微信小程序更新了接口wx.getUserProfile之后导致的。
反正就是由于一些不是我们能左右的原因,调用wx.getUserInfo或<button open-type=”getUserInfo”/>以后就不会再弹出授权弹窗啦,所以我们在做登录授权的时候需要进行兼容或者直接使用文档提供的wx.getUserProfile接口,我把官方提供的demo放在下面,欢迎自取~
为优化用户的使用体验,平台将进行以下调整:
- 2021年2月23日起,若小程序已在微信开放平台进行绑定,则通过wx.login接口获取的登录凭证可直接换取unionID
- 2021年4月28日24时后发布的小程序新版本,无法通过wx.getUserInfo与<button open-type=”getUserInfo”/>获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。此前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。
- 新增getUserProfile接口(基础库2.10.4版本开始支持),可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认。具体接口文档:《getUserProfile接口文档》
- 由于getUserProfile接口从2.10.4版本基础库开始支持(覆盖微信7.0.9以上版本),考虑到开发者在低版本中有获取用户头像昵称的诉求,对于未支持getUserProfile的情况下,开发者可继续使用getUserInfo能力。开发者可参考getUserProfile接口文档中的示例代码进行适配。
请使用了wx.getUserInfo接口或<button open-type=”getUserInfo”/>的开发者尽快适配。开发者工具1.05.2103022版本开始支持getUserProfile接口调试,开发者可下载该版本进行改造。
小游戏不受本次调整影响。
人人商城小程序用户授权登录失败,getUserProfile小程序登录接口升级怎么修改呢?
1,修改pages\auth\index.wxml
立即登录按钮改为
<button bindtap=”getUserProfile” class=”authBtn” lang=”zh_CN”>
立即登录
button>
2,修改pages\auth\index.js
第62行添加代码
getUserProfile(){
wx.getUserProfile({
desc: ‘用于完善会员资料’, // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (res) => {
// console.log(“获取用户信息成功”, res);
// return;
wx.showLoading({
title: “加载中”
}), wx.login({
success: function(t) {
// console.log(t);
// return;
n.post(“wxapp/login”, {
code: t.code
}, function(t) {
// console.log(t.openid);
// return;
t.error ? n.alert(“获取用户登录态失败:” + t.message) : n.get(“wxapp/auth”, {
data: res.encryptedData,
iv: res.iv,
sessionKey: t.session_key,
openId:t.openid
}, function(n) {
1 == n.isblack && wx.showModal({
title: “无法访问”,
content: “您在商城的黑名单中,无权访问!”,
success: function(n) {
n.confirm && e.close(), n.cancel && e.close();
}
}), res.userInfo.openid = n.openId, res.userInfo.id = n.id, res.userInfo.uniacid = n.uniacid,
e.setCache(“userinfo”, res.userInfo), e.setCache(“userinfo_openid”, res.userInfo.openid),
e.setCache(“userinfo_id”, n.id), e.getSet(), wx.navigateBack({
changed: !0
});
});
});
},
fail: function() {
n.alert(“获取用户信息失败!”);
},
complete: function() {
wx.hideLoading();
}
});
},
fail: res => {
// console.log(“获取用户信息失败”, res)
n.alert(“获取用户信息失败!”);
}
})
},
3,修改登录接口文件addons\ewei_shopv2\plugin\app\core\mobile\wxapp.php
由于getUserProfile本身就是不返回openid的,需要openid用login接口
对应上面js的代码就是
接口文件第93行加上代码
$data[‘openId’] = $_GPC[‘openId’];
如图
其他不用动。
功能是实现了,不知道有没有其他问题。
————————————————————————————————————————————————— 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长:237914037@qq.com,分享目的仅供大家学习和交流,您必须在下载后24小时内删除!本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 如有链接无法下载、失效或广告,请联系管理员处理! 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!本站默认解压密码为:s.chenkei.com
请登录后发表评论
注册