oauth->user(); $openid = $user->id; $avatar = $user->avatar; $nickname = $user->nickname; }else if($type == 2){ $config = config('app.wx_mini_config'); $app = \EasyWeChat\Factory::miniProgram($config); $ret = $app->auth->session($code); if(!isset($ret['openid']) || !$ret['openid']){ throw new Exception('登录失败'); } $openid = $ret['openid']; } if(!$openid){ \exception('参数错误'); } $info = Db::name('wxuser')->where('type',$type)->where('openid',$openid)->find(); if($info){ $token = create_token($info['id']); $userId = $info['id']; if($info['del'] != 0||$info['enable'] != 1){ \exception('用户被禁用,请联系管理员'); } $ret = Db::name('wxuser')->where('id',$info['id'])->update([ 'nickname' => $nickname, 'token' => $token, 'img' => $avatar, 'update_time' => date('Y-m-d H:i:s') ]); if(!$ret){ \exception('登录失败'); } }else{ $ret = Db::name('wxuser')->insertGetId([ 'openid' => $openid, 'nickname' => $nickname, 'img' => $avatar, 'type' => $type, 'create_time' => date('Y-m-d H:i:s'), 'update_time' => date('Y-m-d H:i:s') ]); if(!$ret){ \exception('注册失败'); } $userId = $ret; $token = create_token($userId); $ret = Db::name('wxuser')->where('id',$userId)->update([ 'token' => $token, ]); if(!$ret){ \exception('登录失败'); } } }catch (Exception $e){ trace('微信登录:'.$e->getMessage()); HelpHander::error('登录失败'); } HelpHander::success(['token'=>$token,'user_id' => $userId]); } // 获取jssdk参数 public function jssdk(){ try{ $url = input('url'); $config = config('app.wx_config'); $app = \EasyWeChat\Factory::officialAccount($config); $apis = ['checkJsApi','chooseWXPay','hideOptionMenu']; $app->jssdk->setUrl(urldecode($url)); $ret = $app->jssdk->buildConfig($apis, false, false, false); trace($ret); }catch (\Exception $e){ trace('获取分享参数:'.$e->getMessage()); HelpHander::error('获取jssdk配置失败'); } HelpHander::success($ret); } }