class QyWechatController extends Controller { public $agentid; public $corpId; public $secret; public function __construct() { $this->agentid = 'xxx'; $this->corpId = 'xxx'; $this->secret = 'xxx'; } public function index() { $code = request()->get('code'); if ($code) { //获取用户信息 $user_ticket = $this->getUserTicket($code, $this->getAccessToken()); $user_info = $this->getUserInfo($user_ticket, $this->getAccessToken()); //更新获取的最新信息到用户表 } return redirect(request()->url()); } /** * 获取access_token * * @return mixed */ private function getAccessToken() { //从redis中获取有效的access_token $access_token = Cache::get('access_token'); if ($access_token) return $access_token; $curl = Curl::to('https://qyapi.weixin.qq.com/cgi-bin/gettoken') ->withData(['corpId' => $this->corpId, 'corpsecret'=> $this->secret]) ->get(); $curl = json_decode($curl, true); //重新设置缓存,有效期120分钟 Cache::put('access_token', $curl['access_token'], 120); return $curl['access_token']; } /** * 获取用户信息 * * @param $code * @param $access_token * @return mixed */ private function getUserTicket($code, $access_token) { $user = Curl::to('https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo') ->withData(['access_token' => $access_token, 'code' => $code]) ->get(); $user = json_decode($user, true); return $user['user_ticket']; } /** * 获取用户详情 * * @param $user_ticket * @param $access_token * @return mixed */ private function getUserInfo($user_ticket, $access_token) { $user_detail = Curl::to('https://qyapi.weixin.qq.com/cgi-bin/user/getuserdetail?access_token='.$access_token) ->withData(['user_ticket' => $user_ticket]) ->asJson() ->post(); //转换对象到需要用的数组 $data = [ 'nickname' => $user_detail->userid, 'truename' => $user_detail->name, 'avatar' => $user_detail->avatar, ]; //存入用户信息到session session(['userid' => $user_detail->userid]); session(['name' => $user_detail->name]); session(['avatar' => $user_detail->avatar]); return $data; } }
laravel下实现微信企业号网页授权
猜你喜欢
转载自blog.csdn.net/hu_feng903/article/details/79542312
今日推荐
周排行