微信开发之网页授权
首先,需要說明的是,網頁授權要求公眾號是服務號,且完成認證才行。
微信開發文檔網頁授權有四步:
1、第一步:用戶同意授權,獲取code
2、 第二步:通過code換取網頁授權access_token、openid
3、 第三步:刷新access_token(如果需要)
4、 第四步:拉取用戶信息(需scope為 snsapi_userinfo)
snsapi_base: 到第二步就結束了,獲取到openid,其他操作在這個基礎上(比如記錄該用戶訪問時間次數信息)
snsapi_userinfo: 獲取openid和用戶資料(昵稱、頭像、國、省、城市、性別、權限)
這里主要說的是snsapi_userinfo模式
一、在微信后臺配置
在微信公眾平臺下的開發->接口權限->網頁服務->網頁授權中的網頁授權獲取用戶基本信息
點擊修改
設置域名為你服務器的域名,注意,不需要加http(s)://
二、授權代碼
? 1、用戶授權獲取code
$redirect_uri?=?urlencode?(?'http://你的域名/getUserInfo.php'?);$url?="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_base&state=1#wechat_redirect";$this->redirect($url,302);?2、獲取openid及用戶信息
$code = $_GET['code'];//獲取openid和access_token$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$this->appId&secret=$this->appSecret&code=$code&grant_type=authorization_code";$curl = new Curl();$curl->setOpt(CURLOPT_SSL_VERIFYPEER, false);$curl->setOpt(CURLOPT_SSL_VERIFYHOST, false);$curl->get($url);$djson = $curl->response;$rjson = json_decode($djson,true);$access_token = $rjson['access_token'];//得到access_token$openId = $rjson['openid'];//得到openid//獲取用戶信息$userInfoUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openId&lang=zh_CN";//獲取用戶信息$curl1 = new Curl();$curl1->setOpt(CURLOPT_SSL_VERIFYPEER, false);$curl1->setOpt(CURLOPT_SSL_VERIFYHOST, false);$curl1->get($userInfoUrl);$result = $curl1->response;$result = json_decode($result,true);dump($result);參考文章:https://www.cnblogs.com/lola/p/6639110.html
總結
- 上一篇: boost::stacktrace::d
- 下一篇: LaTeX局部改变字体类型