input('code'); $url = env('WECHAT_AUTH_URL'); try { $user = $wechatService->oauthSnsapiBaseUser($code); } catch (\Exception $exception) { Log::error('authorizeBase 获取token失败'); return redirect($url); // return $this->jsonFailed('授权失败:'.$exception->getMessage()); } Log::info('authorizeBase userInfo:', $user->toArray()); $tokenResp = $user->getTokenResponse(); $openId = Arr::get($tokenResp, 'openid'); if (!$openId) { Log::error('authorizeBase 未获取到openid'); return redirect($url); // return $this->jsonFailed('授权失败,请重试'); } $wu = WechatUser::where('open_id', $openId) ->where('type', UserType::SELLER) ->first(); if (!$wu) { $wu = new WechatUser(); $wu->open_id = $openId; $wu->type = UserType::SELLER; $wu->save(); } return redirect($url. '?wid='.$wu->id); } public function bindSeller(Request $request) { $wid = $request->input('wid'); $phone = $request->input('phone'); $password = $request->input('password'); $openName = trim($request->input('openname')); // $openNameLen = mb_strlen($openName); // if ($openNameLen <=0 || $openNameLen > 6) { // return $this->jsonFailed('接受者名称长度在1-6之间'); // } $wecahtUser = WechatUser::find($wid); if (!$wecahtUser) { return $this->jsonFailed('授权失败,请重试'); } $seller = Seller::where('phone', $phone)->first(); if (!$seller) { return $this->jsonFailed('用户名或密码错误'); } if (!Seller::checkPassword($password, $seller->password)) { return $this->jsonFailed('用户名或密码错误'); } $seller->wechat_user_id = $wecahtUser->id; $seller->save(); return $this->jsonSuccess(); } /** * @param Request $request * @return void */ public function unauthorizeBase(Request $request, WechatService $wechatService) { $code = $request->input('code'); try { $user = $wechatService->oauthSnsapiBaseUser($code); } catch (\Exception $exception) { Log::error('unbindSeller 获取token失败:', [ 'error' => $exception->getMessage() ]); return '授权失败,请重试'; } Log::info('unbindSeller userInfo:', $user->toArray()); $tokenResp = $user->getTokenResponse(); $openId = Arr::get($tokenResp, 'openid'); if (!$openId) { Log::error('unbindSeller 未获取到openid'); return '授权失败,请重试!'; } $wu = WechatUser::where('open_id', $openId)->first(); if ($wu) { Seller::where('wechat_user_id', $wu->id) ->update([ 'wechat_user_id' => 0 ]); } return '解绑成功'; } }