// +---------------------------------------------------------------------- namespace behavior\wechat; use app\wap\model\user\User; use app\wap\model\user\WechatUser; use think\Cookie; use think\Request; class UserBehavior { /** * 微信授权成功后 * @param $userInfo */ public static function wechatOauthAfter($openid,$wechatInfo) { Cookie::set('is_login',1); $spread_uid=$wechatInfo['spread_uid']; $wechatInfo['nickname']=filter_emoji($wechatInfo['nickname']); if(isset($wechatInfo['unionid']) && $wechatInfo['unionid'] != '' && WechatUser::be(['unionid'=>$wechatInfo['unionid']])){ WechatUser::edit($wechatInfo,$wechatInfo['unionid'],'unionid'); $uid = WechatUser::where('unionid',$wechatInfo['unionid'])->value('uid'); User::updateWechatUser($wechatInfo,$uid); }else if(WechatUser::be(['openid'=>$wechatInfo['openid']])){ WechatUser::edit($wechatInfo,$wechatInfo['openid'],'openid'); User::updateWechatUser($wechatInfo,WechatUser::openidToUid($wechatInfo['openid'])); }else{ unset($wechatInfo['spread_uid']); if(isset($wechatInfo['subscribe_scene'])) unset($wechatInfo['subscribe_scene']); if(isset($wechatInfo['qr_scene'])) unset($wechatInfo['qr_scene']); if(isset($wechatInfo['qr_scene_str'])) unset($wechatInfo['qr_scene_str']); try{ $userInfo=User::setWechatUser($wechatInfo,$spread_uid); WechatUser::setNewUserInfo($userInfo); }catch (\Exception $e){ } } User::where('uid',WechatUser::openidToUid($openid))->limit(1)->update(['last_time'=>time(),'last_ip'=>Request::instance()->ip()]); } }