在這個(gè)行動(dòng)端的時(shí)代,微信公眾號(hào)也逐漸成為人們獲取資訊的一種管道,也是商家發(fā)展?jié)撛诳蛻舻囊环N手段,因此,許多程式設(shè)計(jì)師轉(zhuǎn)戰(zhàn)微信開發(fā),那麼今天,我們就來為大家介紹一下微信公眾號(hào)開發(fā)中的網(wǎng)頁(yè)授權(quán)到底要怎麼達(dá)成。
在這之前先給大家一個(gè)我自訂的請(qǐng)求介面的函數(shù),在下面的範(fàn)例程式碼中請(qǐng)求介面用的都是這個(gè)函數(shù)
這個(gè)函數(shù)的作用是,想介面發(fā)起請(qǐng)求,傳遞參數(shù)並回傳介面回傳的資料
(這個(gè)裡面的程式碼就不做多解釋了,如果大家想要了解可以去看一下php curl函數(shù)總結(jié))
//自定義請(qǐng)求接口函數(shù),$data為空時(shí)發(fā)起get請(qǐng)求,$data有值時(shí)發(fā)情post請(qǐng)求 function http_url($url,$data=null){ $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0); curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE); if(!empty($data)){ curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_POSTFIELDS,$data); } $res = curl_exec($ch); if(curl_errno($ch)){ echo "error:".curl_error($ch); exit; } curl_close($ch); return $res; }
(文中所使用的介面為騰訊官方提供,大家可以參考一下微信公眾平臺(tái)的開發(fā)者文件)
一、首先我們需要設(shè)定我們的公眾號(hào)碼
#1、在微信公眾號(hào)請(qǐng)求使用者網(wǎng)頁(yè)授權(quán)之前,開發(fā)者需要先到公眾平臺(tái)官網(wǎng)中的「開發(fā)- 介面權(quán)限- 網(wǎng)頁(yè)服務(wù)- 網(wǎng)頁(yè)帳號(hào)- 網(wǎng)頁(yè)授權(quán)取得使用者基本資訊」的設(shè)定選項(xiàng)中,修改授權(quán)回呼網(wǎng)域名稱。請(qǐng)注意,這裡填寫的是網(wǎng)域名稱(是字串),而不是URL,所以請(qǐng)勿加http:// 等協(xié)定頭;
2、授權(quán)回呼網(wǎng)域設(shè)定規(guī)範(fàn)為全域名,例如需要網(wǎng)頁(yè)授權(quán)的網(wǎng)域?yàn)椋簑ww.qq.com,設(shè)定日後此網(wǎng)域下方的頁(yè)面http://www.qq.com/music.html?、?http://www.qq.com/login .html?都可以進(jìn)行OAuth2.0鑑權(quán)。但http://pay.qq.com?、?http://music.qq.com?、?http://qq.com無法進(jìn)行OAuth2.0鑑權(quán)
3、如果公有號(hào)登入授權(quán)給了第三方開發(fā)者來進(jìn)行管理,不必做任何設(shè)置,由第三方代替公眾號(hào)實(shí)現(xiàn)網(wǎng)頁(yè)授權(quán)即可
#二、使用者同意授權(quán),取得code
? ?
function Get_Code() //獲取code { //構(gòu)造請(qǐng)求地址 $code_url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=微信公眾號(hào)appid&redirect_uri=請(qǐng)求功后回調(diào)地址&response_type=code&scope=snsapi_userinfo&state=STATE #wechat_redirect"; //跳轉(zhuǎn)到請(qǐng)求地址,應(yīng)為本省設(shè)置了回調(diào)地址,所以不需要使用file_get_content()來請(qǐng)求接口。 header("location:" . $code_url); exit; }
三、通個(gè)取得到的code來或缺少access_token和openid
/** * 通過獲取到的code來獲取access_token和openid * $code為獲取到的code * 接口的參數(shù)注意換成自己的,如appid和secret */ function GetAccess_Token($code) { $get_access_token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=appid&secret=secret&code=$code&grant_type=authorization_code"; $res = http_url($get_access_token_url); return json_decode($res, true); }
介面:https://api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID
###五、如果失效,刷新access_token###############介面:### https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN###############六、取得使用者資訊############介面:###https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN##### #/** * 獲取用戶基本信息 * */ function Get_User_Info($access_token, $openid){ $get_user_info = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN"; $res = http_url($get_user_info); return json_decode($res, true); }
獲取到用戶信息數(shù)據(jù):
{ "openid":" OPENID", " nickname": NICKNAME, "sex":"1", "province":"PROVINCE" "city":"CITY", "country":"COUNTRY", "headimgurl": "http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46", "privilege":[ "PRIVILEGE1" "PRIVILEGE2" ], "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL" }
下面上完整代碼:
<?php //跳轉(zhuǎn)第三方頁(yè)面,獲取用戶基本信息 // 這是請(qǐng)求頁(yè)面也是code的回調(diào)頁(yè)面 session_start(); //啟動(dòng)session if (isset($_GET['code'])) { //判斷是否有code傳過來,如果沒有調(diào)用函數(shù)請(qǐng)求code $res = GetAccess_Token($_GET['code']); //使用code獲取access_token和openid if (CkeckAccessToken($res['access_token'], $res['openid']) == 0) { //判斷access_token是否有效,如果無效獲取新的access_token $res = GetRefresh_Token($res['refresh_token']); //或缺新的access_token } $userinfo = Get_User_Info($res['access_token'], $res['openid']); //獲取用戶信息 $_SESSION['userinfo'] = $userinfo; //將用戶信息存入session中 $next_url = 'http://web/index.php'; //下一個(gè)頁(yè)面地址 header("location:" . $next_url); //獲取到信息后跳轉(zhuǎn)到其他頁(yè)面 exit; } else { //獲取code Get_Code(); } function Get_Code() //獲取code{ $code_url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=appid&redirect_uri=回調(diào)地址&response_type=code&scope=snsapi_userinfo&state=STATE #wechat_redirect"; header("location:" . $code_url); exit; } /** * 通過獲取到的code來獲取access_token和openid * */ function GetAccess_Token($code){ $get_access_token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=appid&secret=secret&code=$code&grant_type=authorization_code"; $res = http_url($get_access_token_url); return json_decode($res, true); } /** * 檢查access_token是否有效 * */ function CkeckAccessToken($access_token, $openid){ $check_url = "https://api.weixin.qq.com/sns/auth?access_token=$access_token&openid=$openid"; $res = http_url($check_url); $result = json_decode($res, true); if (isset($result['errmsg']) && $result['errmsg'] == 1) { return 1; //access_token有效 } else { return 0; //access_token無效 } } /** * 如果獲取到的access_token無效,通過refresh_token來刷新access_token */ function GetRefresh_Token($refresh_token){ $get_refresh_token_url = "https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=appid&grant_type=refresh_token&refresh_token=$refresh_token"; $res = http_url($get_refresh_token_url); return json_decode($res, true); } /** * 獲取用戶基本信息 * */ function Get_User_Info($access_token, $openid){ $get_user_info = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN"; $res = http_url($get_user_info); return json_decode($res, true);} //自定義請(qǐng)求接口函數(shù),$data為空時(shí)發(fā)起get請(qǐng)求,$data有值時(shí)發(fā)起post請(qǐng)求 function http_url($url,$data=null){ $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0); curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE); if(!empty($data)){ curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_POSTFIELDS,$data); } $res = curl_exec($ch); if(curl_errno($ch)){ echo "error:".curl_error($ch); exit; } curl_close($ch); return $res; }
? ?
以上是微信公眾號(hào)網(wǎng)頁(yè)授權(quán)詳解的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

抖音網(wǎng)頁(yè)版的登錄入口是https://www.douyin.com/。登錄步驟包括:1.打開瀏覽器;2.輸入網(wǎng)址https://www.douyin.com/;3.點(diǎn)擊“登錄”按鈕並選擇登錄方式;4.輸入賬號(hào)密碼;5.完成登錄。網(wǎng)頁(yè)版提供了瀏覽、搜索、互動(dòng)、上傳視頻和個(gè)人主頁(yè)管理等功能,具有大屏幕體驗(yàn)、多任務(wù)處理、便捷的賬號(hào)管理和數(shù)據(jù)統(tǒng)計(jì)等優(yōu)勢(shì)。

幣安C2C交易讓用戶直接買賣加密貨幣,需注意交易對(duì)手、支付和價(jià)格波動(dòng)風(fēng)險(xiǎn),選擇高信用度用戶和安全支付方式可降低風(fēng)險(xiǎn)。

拷貝漫畫無疑是一個(gè)不容錯(cuò)過的寶藏。在這裡,你可以找到各種風(fēng)格的籃球漫畫,從熱血?jiǎng)?lì)志的競(jìng)技故事,到輕鬆幽默的日常喜劇,應(yīng)有盡有。無論是想重溫經(jīng)典,還是想發(fā)掘新作,拷貝漫畫都能滿足你的需求。通過拷貝漫畫提供的正版在線閱讀入口,你將告別盜版資源的困擾,享受高清流暢的閱讀體驗(yàn),更能支持你喜愛的漫畫作者,為正版漫畫的發(fā)展貢獻(xiàn)一份力量。

選擇UC瀏覽器還是QQ瀏覽器取決於你的需求:1.UC瀏覽器適合追求快速加載和豐富娛樂功能的用戶;2.QQ瀏覽器適合需要穩(wěn)定性和與騰訊產(chǎn)品無縫連接的用戶。

結(jié)合 2025 年最新行業(yè)動(dòng)態(tài)與多維度評(píng)測(cè)數(shù)據(jù),以下為綜合排名前十的 AI 寫作軟件推薦,涵蓋通用創(chuàng)作、學(xué)術(shù)研究、商業(yè)營(yíng)銷等主流場(chǎng)景,同時(shí)兼顧中文優(yōu)化與本地化服務(wù):

奈斯漫畫,一個(gè)致力於為漫畫愛好者打造的沉浸式閱讀體驗(yàn)平臺(tái),匯聚了海量國(guó)內(nèi)外優(yōu)質(zhì)漫畫資源。它不僅僅是一個(gè)漫畫閱讀平臺(tái),更是一個(gè)連接漫畫家與讀者、分享漫畫文化的社區(qū)。通過簡(jiǎn)潔直觀的界面設(shè)計(jì)和強(qiáng)大的搜索功能,奈斯漫畫讓你能夠輕鬆找到心儀的作品,享受流暢舒適的閱讀體驗(yàn)。告別漫長(zhǎng)的等待和繁瑣的操作,即刻進(jìn)入奈斯漫畫的世界,開啟你的漫畫之旅吧!

蛙漫漫畫,憑藉其豐富多元的漫畫資源和便捷流暢的在線閱讀體驗(yàn),已成為眾多漫畫愛好者的首選。它就像一個(gè)充滿活力的池塘,源源不斷地湧現(xiàn)出新鮮有趣的故事,等待著你去發(fā)現(xiàn)和探索。蛙漫漫畫涵蓋了各種題材,從熱血冒險(xiǎn)到甜蜜戀愛,從奇幻科幻到懸疑推理,無論你喜歡哪種類型,都能在這裡找到心儀的作品。其簡(jiǎn)潔直觀的界面設(shè)計(jì),更讓你能夠輕鬆上手,快速找到想看的漫畫,沉浸在精彩紛呈的漫畫世界中。

在這裡,您可以盡情暢遊於浩瀚的漫畫海洋,探索各種題材和風(fēng)格的作品,從熱血激昂的少年漫,到細(xì)膩動(dòng)人的少女漫,從懸疑燒腦的推理漫,到輕鬆搞笑的日常漫,應(yīng)有盡有,總有一款能夠觸動(dòng)您的心弦。我們不僅擁有海量的正版漫畫資源,還不斷引進(jìn)和更新最新的作品,確保您能夠第一時(shí)間閱讀到您喜愛的漫畫。
