<?php /** * Created by PhpStorm. * User: liubao 微信:meizu_mx4 * Date: 2018/8/30 * Time: 13:59 * 获取微信授权链接,获取授权token,获取授权后的微信用户信息 */
class Wechat { private $app_id = ''; //公众号appid private $app_secret = ''; //公众号app_secret private $redirect_uri = ''; //授权之后跳转地址 /** * 获取微信授权链接 * @param string $redirect_uri 跳转地址 * @param mixed $state 参数 **/ public function get_authorize_url($state) { $redirect_uri = urlencode($this->redirect_uri); return "https://open.weixin.qq.com/connect/oauth2/authorize?appid={$this->app_id}&redirect_uri={$redirect_uri}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"; } /** * 获取授权token * @param string $code 通过get_authorize_url获取到的code * */ public function get_access_token($code) { $token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$this->app_id}&secret={$this->app_secret}&code={$code}&grant_type=authorization_code"; $token_data = $this->curl_get($token_url); return json_decode($token_data, TRUE);//里面包含access_token和openid,拿到这两个值就可以访问下面的方法获取微信用户信息了 } /** * 获取授权后的微信用户信息 * @param string $access_token * @param string $open_id */ public function get_user_info($access_token, $open_id) { if ($access_token && $open_id) { $info_url = "https://api.weixin.qq.com/sns/userinfo?access_token={$access_token}&openid={$open_id}&lang=zh_CN"; $info_data = $this->curl_get($info_url); return json_decode($info_data, TRUE); } return FALSE; }
//curl get方式 public function curl_get($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $data = curl_exec($curl); curl_close($curl); return $data; } //curl post方式 public function curl_post($url, $param) { $param = json_encode($param,true); $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $param); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); $data = curl_exec($ch); return $data; } }
获取微信授权demo
最新推荐文章于 2024-01-30 16:36:56 发布