微信修改了获取用户基本信息 接口返回的参数,不在返回nickname、headimgurl;因此PRO的微信授权方法也需要做兼容.自行按照下面的操作兼容.
关于微信授权获取用户昵称、图像问题修复
1、下载修复包在根目录解压
2、文件:crmeb/services/WechatService.php,增加如下方法:
/**
* 网页授权
* @return easywechat\oauth2\wechat\WechatOauth2Provider
*/
public static function oauth2Service()
{
$_this = self::instance();
$_this->serverRequest(app()->request, 'oauth2');
return self::instance()->application->oauth2;
}
3、全局搜索:::oauthService()->user()->getOriginal(),授权获取openid方法:
改成: ::oauth2Service()->oauth();
4、搜索调用:::getUserInfo()这个方法,全部替换成:
::oauth2Service()->getUserInfo()->toArray()
注:这个方法参数为用户:openid
以下方法中调用::getUserInfo()不用替换:
文件:app/services/wechat/WechatUserServices.php
方法1:updateWecahtUser()
方法2:setNewUser()
方法3:syncWechatUser()
文件:app/services/user/UserServices.php
方法4:importUser()
本次微信获取用户基本信息不在返回用户昵称、图像信息
关注公众号生成用户,同步公众号用户;使用openid获取用户信息不用更改,只需增加nickname字段验证,事例代码如下:
if (isset($userInfo['nickname']) && $userInfo['nickname']) {
$userInfo['nickname'] = filter_emoji($userInfo['nickname']);
} else {
mt_srand();
$userInfo['nickname'] = 'wx' . rand(100000, 999999);
}
{{item.user_info.nickname ? item.user_info.nickname : item.user_name}}
作者 管理员 企业
{{itemf.name}}
{{itemc.user_info.nickname}}
{{itemc.user_name}}
回复 {{itemc.comment_user_info.nickname}}
{{itemf.name}}