人人商城/微擎网页授权快照模式问题研究及解决方案
发表时间:2022-10-27
发布人:葵宇科技
浏览次数:983
背景说明
前几天在使用微擎版人人商城进行测试的时候发现一个有趣的现象,在PC版微信系统中,公众号端可以正常获得用户的昵称及头像,但是在手机上进入公众号却发现系统无法获得用户昵称及头像,显示昵称为”微信用户“。
更为神奇的是不管在微擎会员管理中还是在人人商城会员管理中,出现了PC端的正常账号和手机端“微信用户”两个账号,同时手机端支付等一些列功能均受影响。
这个问题就让人很迷惑了,我尝试在开发者工具中进行调试,结果却是一切正常!一切正常!我TM的纳闷了。后来尝试真机调试,结果却发现微信取消X5内核了,调试不了,调试不了!直到不经意间发现了一个以前没见过的东西
原来微信又TMD调整接口了!!官方接口调整公告:微信网页授权能力调整公告
踩坑记录
1.必须真机测试
2.调用授权的方式必须是,进入这个页面就进行登陆(这就是官方所说的不规范登陆授权)
3.打开方式:必须是分享出去的页面或者链接,不能是从公众号菜单页面进入
4.必须取消关注公众号
5.forceSnapShot(!!!!!!!!!!!坑)
官方说有这个,并且已经把文档更新了,但是我折腾了好几个小时,我也无法复现问题。
影响范围
这次调整影响范围非常广,包括所有微擎应用,微擎框架,人人商城等
解决思路
只需要在进行网页授权的时候,对他进行一下拦截,或者新建一个登陆页面,让授权不是直接进入页面就调用
解决方法
在需要使用使用发起 snsapi_userinfo 网页授权时转至一个新的授权页面,通过用户主动触发调用网页授权,完美避开快照模式
微擎/人人商城网页快照解决方案
既然有了思路,后面的就简单了,因为这次调整不仅仅影响人人商城,微擎框架下的所有应用使用网页授权都会出现这样的问题,头像默认灰白,昵称“微信用户”,虚拟Openid,无法支付等情况,据此,在尽可能最小程度修改代码的前提下对人人商城和微擎进行代码合规化处理。方法采用上面的思路,具体效果见图示
头像、昵称资料获取 下单,支付 分销关系绑定 门店店员扫码核销 其他页面:拼团、积分签到等插件页
微擎/其他模块兼容性测试:待进行
详细修改文档:点击右侧联系方式~~