无棣论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 86|回复: 0

人人商城小程序昵称变成了“微信用户”头像也不显示?getUserInfo换成getUserProfile

[复制链接]

290

主题

335

帖子

1270

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1270
发表于 2022-3-30 08:07:18 | 显示全部楼层 |阅读模式
小程序调试时,突然发现获取到的用户昵称变成“微信用户”和头像也非用户微信头像了,原因是微信小程序更新了接口wx.getUserProfile之后导致的
2021年4月28日24时后发布的小程序新版本,无法通过wx.getUserInfo与<button open-type="getUserInfo"/>获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。此前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。
人人商城小程序用户授权登录失败,getUserProfile小程序登录接口升级
怎么修改呢?
1,修改pages\auth\index.wxml
立即登录按钮改为
[size=1em][color=white !important]
[color=white !important][size=1em]?

[size=1em]1

[size=1em]2

[size=1em]3

[size=1em][size=1em]<button bindtap="getUserProfile" class="authBtn" lang="zh_CN">
[size=1em]立即登录
[size=1em]</button>



2,修改pages\auth\index.js
第62行添加代码
[size=1em][color=white !important]
[color=white !important][size=1em]?

[size=1em]1

[size=1em]2

[size=1em]3

[size=1em]4

[size=1em]5

[size=1em]6

[size=1em]7

[size=1em]8

[size=1em]9

[size=1em]10

[size=1em]11

[size=1em]12

[size=1em]13

[size=1em]14

[size=1em]15

[size=1em]16

[size=1em]17

[size=1em]18

[size=1em]19

[size=1em]20

[size=1em]21

[size=1em]22

[size=1em]23

[size=1em]24

[size=1em]25

[size=1em]26

[size=1em]27

[size=1em]28

[size=1em]29

[size=1em]30

[size=1em]31

[size=1em]32

[size=1em]33

[size=1em]34

[size=1em]35

[size=1em]36

[size=1em]37

[size=1em]38

[size=1em]39

[size=1em]40

[size=1em]41

[size=1em]42

[size=1em]43

[size=1em]44

[size=1em]45

[size=1em]46

[size=1em]47

[size=1em]48

[size=1em]49

[size=1em]50

[size=1em]51

[size=1em][size=1em]getUserProfile(){
[size=1em]        wx.getUserProfile({
[size=1em]            desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
[size=1em]            success: (res) => {
[size=1em]                // console.log("获取用户信息成功", res);
[size=1em]                // return;
[size=1em]                wx.showLoading({
[size=1em]                    title: "加载中"
[size=1em]                }), wx.login({            
[size=1em]                    success: function(t) {
[size=1em]                //         console.log(t);
[size=1em]                // return;
[size=1em]                        n.post("wxapp/login", {
[size=1em]                            code: t.code
[size=1em]                        }, function(t) {
[size=1em]                //             console.log(t.openid);
[size=1em]                // return;
[size=1em]                            t.error ? n.alert("获取用户登录态失败:" + t.message) : n.get("wxapp/auth", {
[size=1em]                                data: res.encryptedData,
[size=1em]                                iv: res.iv,
[size=1em]                                sessionKey: t.session_key,
[size=1em]                                openId:t.openid
[size=1em]                            }, function(n) {
[size=1em]                                1 == n.isblack && wx.showModal({
[size=1em]                                    title: "无法访问",
[size=1em]                                    content: "您在商城的黑名单中,无权访问!",
[size=1em]                                    success: function(n) {
[size=1em]                                        n.confirm && e.close(), n.cancel && e.close();
[size=1em]                                    }
[size=1em]                                }), res.userInfo.openid = n.openId, res.userInfo.id = n.id, res.userInfo.uniacid = n.uniacid,
[size=1em]                                e.setCache("userinfo", res.userInfo), e.setCache("userinfo_openid", res.userInfo.openid),
[size=1em]                                e.setCache("userinfo_id", n.id), e.getSet(), wx.navigateBack({
[size=1em]                                    changed: !0
[size=1em]                                });
[size=1em]                            });
[size=1em]                        });
[size=1em]                    },
[size=1em]                    fail: function() {
[size=1em]                        n.alert("获取用户信息失败!");
[size=1em]                    },
[size=1em]                    complete: function() {
[size=1em]                        wx.hideLoading();
[size=1em]                    }
[size=1em]                });
[size=1em]            },
[size=1em]            fail: res => {
[size=1em]                // console.log("获取用户信息失败", res)
[size=1em]                n.alert("获取用户信息失败!");
[size=1em]            }
[size=1em]        })
[size=1em]    },



如图,新旧代码对比
3,修改登录接口文件addons\ewei_shopv2\plugin\app\core\mobile\wxapp.php
由于getUserProfile本身就是不返回openid的,需要openid用login接口
对应上面js的代码就是
接口文件第93行加上代码
$data['openId'] = $_GPC['openId'];
如图
其他不用动。

功能是实现了,不知道有没有其他问题。
参考
https://zhuanlan.zhihu.com/p/362032946
https://blog.csdn.net/weixin_45483107/article/details/115798042
https://blog.csdn.net/weixin_49295874/article/details/115618856?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-1&spm=1001.2101.3001.4242


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|无棣论坛

GMT+8, 2024-6-14 06:59 , Processed in 0.031407 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表