人人商城小程序用户授权登录失败,getUserProfile小程序登录接口升级

微信小程序2021年4月13日调整回收wx.getUserInfo接口可获取用户授权的个人信息能力

相关文档:https://developers.weixin.qq.com/community/develop/doc/000cacfa20ce88df04cb468bc52801?highLine=login

调整后4月13日之后发布的小程序wx.getUserInfo的接口都将失效,因此导致小程序的登录会出现灰色头像和微信用户

后台也是获取不到数据导致界面一度尴尬

而且TX的开发文档写得十分含糊,这个旧不吐槽了,避坑wx.getUserProfile 接口返回的解密数据里不包含openId

思来想去不想对登录流程进行太多改动于是wx.getUserInfo接口的解密数据获取openId还是可以,只是无法获取用户基本信息getUserProfile可以既然如果那就

先用getUserProfile获取  userInfo用户对象信息,在用wx.getUserInfo 获取encryptedData和iv 至此后面的登录流程不变只是提交数据的时候多提交一个userInfo信息到后台

小程序支持库最少升到2.10.4

相关文件

小程序路径pages/auth/index.wxml    立即登录按钮需要修改

<image class='logo' src='{{shop_logo}}'></image>
<view class='title'><text class='title-underline'>{{shop_name}}</text></view>
<view class='message'><text>您尚未登录需要获取您的授权后进入商城</text></view><button bindtap='close'class='cancelBtn'>暂不登录</button><button bindtap='bindGetUserInfobu' class='authBtn' >立即登录</button>

小程序路径pages/auth/index.js 多加了一个方法bindGetUserInfobu()  然后获取到userInfo用户对象信息在用wx.getUserInfo  把对象结构拼装一下,这样基本没有太多改动

提交时多提交一个userInfo用户对象信息

// 登录修正bindGetUserInfobu(){//getUserProfile获取用户信息wx.getUserProfile({lang:'zh_CN',desc: '用于完善会员资料',success: (res) =>{console.log(res)//getUserInfo获取认证oid解密wx.getUserInfo({lang: 'zh_CN',}).then(r=>{console.log(r)r.userInfo=res.userInfolet n={detail:r}this.bindGetUserInfo(n)})}})},
//登录修正bindGetUserInfo: function (o) {console.log(o)wx.showLoading({title: "加载中"}) wx.login({success: function (t) {console.log(t)n.post("wxapp/login", {code: t.code}, function (tt) {console.log(tt)tt.error ? n.alert("获取用户登录态失败:" + tt.message) : n.get("wxapp/auth", {data: o.detail.encryptedData,iv: o.detail.iv,sessionKey: tt.session_key,userInfo:o.detail.userInfo// 登录修正}, function (n) {console.log(n)1 == n.isblack && wx.showModal({title: "无法访问",content: "您在商城的黑名单中,无权访问!",success: function (n) {n.confirm && e.close(), n.cancel && e.close()}}), o.detail.userInfo.openid = n.openId, o.detail.userInfo.id = n.id, o.detail.userInfo.uniacid = n.uniacid, e.setCache("userinfo", o.detail.userInfo), e.setCache("userinfo_openid", o.detail.userInfo.openid), e.setCache("userinfo_id", n.id), e.getSet(), wx.navigateBack({changed: !0})})})},fail: function () {n.alert("获取用户信息失败!")},complete: function () {wx.hideLoading()}})},

后台代码 ewei_shopv2/plugin/app/core/mobile/wxapp.php

只需要修改 auth()  加4行代码 见注释 登录修正

/*** 微信小程序登录*/public function auth(){global $_GPC;global $_W;$encryptedData = trim($_GPC["data"]);$iv = trim($_GPC["iv"]);$sessionKey = trim($_GPC["sessionKey"]);//登录修正$userInfo=$_GPC["userInfo"];//登录修正if (empty($encryptedData) || empty($iv)) {return app_error(AppError::$ParamsError);}$pc = new WXBizDataCrypt($this->appid, $sessionKey);$errCode = $pc->decryptData($encryptedData, $iv, $data);if ($errCode == 0) {$data = json_decode($data, true);$this->refine($data["openId"]);$member = m("member")->getMember("sns_wa_" . $data["openId"]);//登录修正if(is_array($userInfo)){$data=array_merge($data, $userInfo);}//登录修正if (empty($member)) {$member = array("uniacid" => $_W["uniacid"], "uid" => 0, "openid" => "sns_wa_" . $data["openId"], "nickname"=>!empty($data["nickName"]) ? $data["nickName"] : "", "avatar" => !empty($data["avatarUrl"]) ? $data["avatarUrl"] : "", "gender" => !empty($data["gender"]) ? $data["gender"] : "-1", "openid_wa" => $data["openId"], "comefrom" => "sns_wa", "createtime" => time(), "status" => 0);pdo_insert("ewei_shop_member", $member);$id = pdo_insertid();$data["id"] = $id;$data["uniacid"] = $_W["uniacid"];if (method_exists(m("member"), "memberRadisCountDelete")) {m("member")->memberRadisCountDelete();}} else {$updateData = array("nickname" => !empty($data["nickName"]) ? $data["nickName"] : "", "avatar" => !empty($data["avatarUrl"]) ? $data["avatarUrl"] : "", "gender" => !empty($data["gender"]) ? $data["gender"] : "-1");pdo_update("ewei_shop_member", $updateData, array("id" => $member["id"], "uniacid" => $member["uniacid"]));$data["id"] = $member["id"];$data["uniacid"] = $member["uniacid"];$data["isblack"] = $member["isblack"];}if (p("commission")) {p("commission")->checkAgent($member["openid"]);}return app_json($data, $data["openId"]);}return app_error(AppError::$WxAppError, "登录错误, 错误代码: " . $errCode);}

对人人整个流程不是特别熟悉本着能少改动代码尽量少改动,缺什么补什么吧,这个我朋友上线测试之前没有获取到用户个人数据的账号,在重新登录后头像昵称数据会更新过来

希望能帮到大家共度难关,要是能混个打赏就更好了,哈哈哈,白日梦中....

4月13日调整人人商城小程序用户登录灰头像,getUserProfile小程序登录接口适配比较简单的方法相关推荐

  1. 9月13号魔兽服务器维护,9月13日版本更新维护

    斗玩网(d.chinaz.com)报道:LOL英雄联盟9 月 13 日版本更新维护公告,英雄联盟 9 月 13 日更新什么时候结束.LOL将在 9 月 13 日 1 点关闭排位赛入口(不影响已经在进行 ...

  2. 家园系统服务器,1月13日服务器更新 调整家园系统帮盟系统

    亲爱的玩家: 青龙乱舞区.大地飞鹰区.血海飘香区.名剑风流区.陌上花开区.边城浪子区全部服务器将在1月13日6:00~8:00停机维护更新,维护完成后上述各服务器客户端版本号升级至1.1.30.4.本 ...

  3. 梦幻手游服务器维护摆摊公示时间,梦幻西游手游4月13日维护公告 摆摊调整

    亲爱的玩家朋友:为保证服务器的运行稳定和服务质量,<梦幻西游>手游所有服务器将于2016年4月13日8:00停机,进行维护工作.预计维护时间为8:00-9:00.如果在预定时间内无法完成维 ...

  4. 8月13日第五人格服务器维修中,第五人格8月13日更新了什么 8月13日更新内容介绍...

    第五人格8月13日更新了什么?很多玩家都不是很清楚,接下来小编为大家带来一篇第五人格8月13日更新了什么 8月13日更新内容介绍. 8月13日版本更新内容 活动 --[篝火狂欢]活动开启:热情的夏日, ...

  5. 8月13日第五人格服务器维修中,第五人格8月13日更新 沉默宫殿管家上线

    第五人格8月13日更新,第五人格沉默宫殿管家上线!又到了一周一次的游戏维护时间!8月13日更新后,红夫人礼包.雕刻家.新管家和篝火活动都将上线! [活动] [篝火狂欢]活动开启:热情的夏日,来一场篝火 ...

  6. 龙剑服务器为什么总是维修,《龙剑》2014年3月13日更新维护公告

    亲爱的<龙剑>技术测试玩家: 为了保证服务器的稳定和服务质量,本周例行维护将于2014年3月13日上午8:00停机,维护时间为上午8点至11点左右.如果在维护期间无法完成维护内容,开机时间 ...

  7. 互联网晚报 | 4月13日 星期三 | 阿里云人事大变动;老坛酸菜方便面重返超市货架;工信部:加快5G全连接工厂建设...

    阿里云人事大变动,中国区总裁辞任.多名中高层骨干离职 4月13日消息,阿里云人事大变动,中国区总裁辞任.多名高P离职多方消息人士透露,阿里云正在进行新一轮组织架构调整:阿里云中国区总裁任庚(M6)将离 ...

  8. 互联网晚报 | 3月13日 星期日 |​ ​​上海加强疫情防控:非必要不离沪;MasterGo宣布上线Figma文件导入功能...

    准备回家!"太空出差三人组"计划4月返回地球 3月13日,据中国载人航天工程办公室消息,2021年以来,我国载人航天工程已成功实施空间站关键技术验证阶段5次飞行任务,目前,核心舱组 ...

  9. 互联网晚报 | 5月13日 星期五 | 罗永浩回应被叫行业冥灯;新一轮汽车下乡政策最快将于本月出台;字节跳动鲸鲮操作系统获批...

    罗永浩回应被叫"行业冥灯":完全不能同意,更多只是时间上的巧合 5月12日消息,据经济网消息,在近日举行的交个朋友电商学苑聊天局中,罗永浩回答了网友们不少相当尖锐的问题,包括其如何 ...

  10. 天刀一代宗师服务器维护,3月13日服务器例行维护公告(已完成)

    亲爱的玩家: 青龙乱舞区.大地飞鹰区.陌上花开区.天命风流区.沧海云帆区.血海飘香区.边城浪子区全部服务器将在3月13日6:00~10:00停机维护更新,维护完成后上述各服务器客户端版本更新至2.0. ...

最新文章

  1. panads 访问 csv 数据集
  2. AI CC2018软件安装教程
  3. FreeBSD学习总结
  4. Android华容道之一步一步实现-序言
  5. BTrace是一个非常不错的java诊断工具
  6. 深度学习(三十)——Deep Speech, 自动求导
  7. C# list与数组互相转换
  8. httpd2.4.9主配置文件参数详解
  9. (转)策略回测的框架、实现、测试
  10. linux安装中文输入法 -谷歌拼音
  11. 四位共阴极数码管使用经验
  12. [HDU6070] Dirt Ratio
  13. SUSE LINUX 10.1如何ADSL上网指南(转)
  14. oracle中取月初和月末的方法
  15. 抖音SEO优化:最详细抖音视频SEO教程
  16. python怎么把照片转成卡通_python用OpenCV转卡通照片报错,好像是pyrdown的使用有问题?...
  17. 分享16个经典面试问题回答思路
  18. 程序员的系统桌面应该是这样的
  19. 【战神引擎】游戏不开门怎么解决?
  20. 今日键盘字母键突然“失灵”了,这是为什么呢?

热门文章

  1. hsqldb mysql_HSQLDB简介
  2. 阿里巴巴面试题- - -Java体系最新面试题(2022内部资料)
  3. python打开360浏览器_使用python3.7 的pycharm selenium自动化测试中启动360浏览器、360极速浏览器的方法...
  4. SPSS 24安装教程详细步骤
  5. 无代码app在线制作网站:自己做app的制作方法
  6. gradle-4.10.2-all等gradle下载
  7. 如何删除2345浏览器网络导航主页
  8. 结对-人机对战象棋游戏-测试过程
  9. python去除视频马赛克_手把手教你用Python去除马赛克!
  10. 搜索和下载英文文献常用的网站