《「WeChat微信授權(quán)登錄」PHP微信授權(quán)登錄小白貼》要點(diǎn):
本文介紹了「WeChat微信授權(quán)登錄」PHP微信授權(quán)登錄小白貼,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
我們用php做微信授權(quán)最主要使用的便是php的curl,下面我會(huì)為大家貼上一段.
首先,我們先去微信公眾平臺(tái) - 接口權(quán)限 - 網(wǎng)頁(yè)授權(quán)(網(wǎng)頁(yè)授權(quán)獲取用戶基本信息中) 修改網(wǎng)頁(yè)授權(quán)域名,我們只需要將網(wǎng)站拜訪目錄配置好,并且把需要下載的txt上傳當(dāng)前目錄就行了,如下圖.
下面我們開(kāi)始第一步,獲取code,我把獲取code辦法都寫(xiě)在下圖的注釋中,供客官們閱讀.
配置好之后,我們拜訪上面的鏈接看到的就是下面的頁(yè)面,當(dāng)點(diǎn)擊確認(rèn)的時(shí)候,我們就會(huì)轉(zhuǎn)跳到授權(quán)配置的回調(diào)頁(yè)面,如下圖,下面小編為大家寫(xiě)一下授權(quán)回調(diào)頁(yè)面,做一些有意思的事.
第二步獲取的json數(shù)據(jù)未json_decode之前如下圖.
第三步獲取的json數(shù)據(jù)未json_decode之前如下圖.
具體的參數(shù)闡明我們都可以在微信公眾平臺(tái)技術(shù)文檔的微信網(wǎng)頁(yè)授權(quán)中查看.
之后我們就可以拿到微信用戶的各種信息了,可以做一些操作,好比存入數(shù)據(jù)庫(kù)和其他一些判斷,這里小編就不一一寫(xiě)出來(lái)了.
重要提示:我們還有一步,就是有很多客官別的數(shù)據(jù)都拿到了,就是沒(méi)有unionid,這里我們還必要將公眾號(hào)綁定到微信開(kāi)放平臺(tái),我們只必要登錄微信開(kāi)放平臺(tái),選擇下面的選項(xiàng),由管理員將公眾號(hào)添加進(jìn)去即可.
綁定勝利之后我們?cè)谖⑿殴娖脚_(tái)中基本配置下就能看到我們剛才綁定的開(kāi)放平臺(tái)賬號(hào)了.
然后我們?cè)俅沃貜?fù)上面的過(guò)程,就可以發(fā)現(xiàn)用戶的所有信息包含unionid都獲取到了.
下面為了大家便利,我將我編寫(xiě)的php文件貼在下面,供大家復(fù)制查看.
//https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
//這里攜帶的幾個(gè)參數(shù)
//appid 公眾號(hào)唯一標(biāo)識(shí) 在公眾平臺(tái) - 基本配置中查看
//redirect_uri 回調(diào)地址 成功授權(quán)之后重定向回調(diào)地址 必要進(jìn)行urlencode
//response_type 直接填寫(xiě)code即可
//scope 官網(wǎng)解釋叫應(yīng)用授權(quán)作用域 其實(shí)相當(dāng)于兩個(gè)參數(shù)中選擇一個(gè)填寫(xiě)
//第一種參數(shù)選擇填寫(xiě) snsapi_base 不會(huì)彈出授權(quán)頁(yè)面 靜默授權(quán)
//第二種參數(shù)選擇填寫(xiě) snsapi_userinfo 彈出授權(quán)確認(rèn)頁(yè)面 我們下面為了獲取更多信息 使用第二種參數(shù)選擇
//state 和 wechat_redirect 我們使用鏈接中的即可 不必要修改
//下面我們進(jìn)入回調(diào)頁(yè)環(huán)節(jié)
//首選我們準(zhǔn)備一個(gè)curl 為下面幾次哀求用
function do_curl($url,$data='',$agent=''){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0); //是否返回header頭
curl_setopt($ch, CURLOPT_TIMEOUT,6); //超時(shí)時(shí)間
if($data){
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳過(guò)證書(shū)檢查
//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 從證書(shū)中檢查SSL加密算法是否存在
if($agent){
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
}
$content = curl_exec($ch);
return $content;
}
//第一步 截取code 這一步 我們從回調(diào)的url中截取到code的參數(shù) 而且聲明一個(gè)變量作為code
$url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
$arr = parse_url($url);
$arr_query = convertUrlQuery($arr['query']);
$code = $arr_query['code'];
//第二步 使用curl根據(jù)code來(lái)獲取access_token和openid
//必要的參數(shù)appid和secret都在公眾平臺(tái) - 基本配置中查看 code則是我們上面獲取的code $code
$access_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code ';
//之后我們使用curl發(fā)送哀求 將成功哀求的數(shù)據(jù)json_decode之后 我們?cè)俣x變量$access_token和$openid 供后面使用
$result = json_decode(do_curl($access_token_url));
$access_token = $result->access_token;
$openid = $result->openid;
//第三部 根據(jù)access_token和openiid去獲取微信用戶信息 第三個(gè)參數(shù)lang是語(yǔ)言的選擇
$user_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN';
$data = json_decode(do_curl($user_url));
小編虛心的歡迎各位年夜神的指教和糾錯(cuò),也歡迎沒(méi)太懂的客官留言,小編會(huì)第一時(shí)間看到之后進(jìn)行回復(fù)的.
維易PHP培訓(xùn)學(xué)院每天發(fā)布《「WeChat微信授權(quán)登錄」PHP微信授權(quán)登錄小白貼》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/10619.html