微信公眾號(hào)里的PHP網(wǎng)站進(jìn)行網(wǎng)頁(yè)授權(quán)

要進(jìn)行網(wǎng)頁(yè)授權(quán),肯定要和微信合作,首先,要有一個(gè)自己的公眾號(hào),而且必須要經(jīng)過(guò)認(rèn)證的公眾號(hào).(如果沒(méi)有,可以去申請(qǐng)測(cè)試號(hào))

訂閱號(hào)和服務(wù)號(hào)以及測(cè)試號(hào):訂閱號(hào)專(zhuān)注的是推送消息,所以一些高級(jí)接口會(huì)沒(méi)有.服務(wù)號(hào)專(zhuān)注的是用戶(hù)交互,所以接口會(huì)比訂閱號(hào)多一點(diǎn),相對(duì)的,推送消息的數(shù)量就會(huì)比訂閱號(hào)少一點(diǎn).而測(cè)試號(hào),什么接口都有,但測(cè)試號(hào),你懂得,用不時(shí)間長(zhǎng).

本文的教程僅僅是微信入門(mén)教程,如有錯(cuò)誤,歡迎指正!!!

我要說(shuō)的是微信的網(wǎng)頁(yè)授權(quán)功能.如果要開(kāi)發(fā)網(wǎng)頁(yè)授權(quán)功能,就需要一個(gè)服務(wù)號(hào),服務(wù)號(hào),服務(wù)號(hào). 因?yàn)檫M(jìn)行網(wǎng)頁(yè)授權(quán)的時(shí)候,必須要填一個(gè)網(wǎng)頁(yè)授權(quán)域名,這個(gè)網(wǎng)頁(yè)授權(quán)域名在訂閱號(hào)里面沒(méi)有,不支持.所以要用服務(wù)號(hào)
功能設(shè)置

填好網(wǎng)頁(yè)授權(quán)域名后,就可以進(jìn)行代碼的開(kāi)發(fā)了.我這用的是PHP,思路都一樣,具體代碼差異,請(qǐng)找度娘............................

大致思路是:你先創(chuàng)建一個(gè)網(wǎng)頁(yè),讓用戶(hù)同意,當(dāng)用戶(hù)同意后,微信會(huì)帶一個(gè)code參數(shù)來(lái)訪問(wèn)你填的網(wǎng)頁(yè)授權(quán)域名底下的文件,比如:
http://授權(quán)域名/index.html、http://授權(quán)域名/index.php
這個(gè)文件是你自己建的,名字你自己起(沒(méi)錯(cuò),這個(gè)網(wǎng)頁(yè)授權(quán)就是上面說(shuō)的網(wǎng)頁(yè)授權(quán)),然后我們?cè)趇ndex.html或index.php里會(huì)獲得微信傳過(guò)來(lái)的code,然后拿這個(gè)code和Appid等換取信息,這個(gè)信息就是用戶(hù)的信息咯


下面說(shuō)代碼:
嗯.......進(jìn)行網(wǎng)頁(yè)授權(quán),第一步需要先創(chuàng)建一個(gè)頁(yè)面,這個(gè)頁(yè)面是給用戶(hù)授權(quán)的.比如你進(jìn)微信公眾號(hào)網(wǎng)站,他會(huì)彈出來(lái)一個(gè)界面,問(wèn)你是否授權(quán)用微信號(hào)登錄這個(gè)網(wǎng)站.創(chuàng)建這個(gè)頁(yè)面的代碼:

$AppId = "你的Appid";
$Redirect_Uri = urlencode('域名/index.html');//這里是code參數(shù)來(lái)訪問(wèn)你填的網(wǎng)頁(yè)授權(quán)域名,
底下的文件,這里是index.html//這個(gè)$Url 的scope 可以根據(jù)需求自己更改,我用的是snaapi_base,
這個(gè)意思就是用戶(hù)只要關(guān)注了這個(gè)公眾號(hào),就不需要再手動(dòng)去確認(rèn)授權(quán)了,直接就訪問(wèn)微信公眾號(hào)里的網(wǎng)頁(yè)了
$Url = "https://open.weixin.qq.com/connect/oauth2/authorize
appid=$AppId&redirect_uri=$Redirect_Uri&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";//跳到這個(gè)$Url
header("Location:" .$Url);

這個(gè)授權(quán)界面弄好了,接下來(lái)就是再創(chuàng)建一個(gè)文件用來(lái)接收微信發(fā)的code了,再說(shuō)一遍,你創(chuàng)建的這個(gè)文件就是上面代碼里$Redirect_Uri 里域名后的那個(gè)文件.

你可以創(chuàng)建一個(gè)php文件,用$_Get["code"] 來(lái)獲取code的信息.然后用code和APPid等去換取用戶(hù)信息

但是,在這里,我用的是html文件,html 文件怎么去獲取code呢?就要用js..... 這里,就要用到j(luò)s函數(shù)了.

這個(gè)函數(shù)是獲得Code的

function GetCode(name) {    
   var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); 
   var r = window.location.search.substr(1).match(reg);
   if (r != null) return unescape(r[2]);
   return null;
}

然后: 在前臺(tái)html代碼里執(zhí)行js的GetUserInfo函數(shù):

<script> GetUserInfo();</script>

這是js里GetUserInfo()函數(shù)的代碼,這里是用GetCode函數(shù)取得code,然后通過(guò)ajax把他傳入后臺(tái)php文件里

function GetUserInfo() {    
  var code = GetCode("code"); //獲得code
  $.ajax({
    url: "Controller/GetUserInfo.php",
    type: "GET",
    dataType: "json",
    data: {code:code},
    success: function (data) {},
    error: function () {
      alert("服務(wù)器連接錯(cuò)誤:獲取用戶(hù)信息失敗!...");
    }
  });
}

接下來(lái),是PHP后臺(tái)了:

$Code = $_GET['code']; //這里獲取到Code
$Wx = new GetWxUserData();//這里通過(guò)Code和appid獲得用戶(hù)信息的過(guò)程我是寫(xiě)在
//GetWxUserData()類(lèi)里的GetOpenid($code) 這個(gè)函數(shù)里的 
$Result = $Wx->GetOpenid($Code);
$Openid = $Result["openid"]; //這里的$Openid就是用戶(hù)的openid,
//可以把他通過(guò)echo json_encode($Openid) 返回到前臺(tái),就是前面

js里GetUserInfo()的ajax里的success(data) {},這個(gè)data就是echo json_encode($Openid) 返回的數(shù)據(jù).也可以把用戶(hù)的openid運(yùn)用在后臺(tái),比如存數(shù)據(jù)庫(kù)之類(lèi)的,反正隨便你怎么用

接下來(lái),就是這個(gè)GetWxUserData類(lèi)了,類(lèi)的代碼我不發(fā)了,我只發(fā)GetOpenid($Code)這個(gè)函數(shù)就行了:

private $AppId = "你的Appid";
private $Secret = "你的secret,就是開(kāi)發(fā)者密碼";
public function GetOpenid($Code) {
    $Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$this->AppId&secret=$this->Secret&code=$Code&grant_type=authorization_code";
    $Result = $this->https_request($Url);
    return json_decode($Result, true);//因?yàn)榉祷貋?lái)的數(shù)據(jù)是json數(shù)據(jù),所以要把他轉(zhuǎn)化一下
}
public function https_request($Url, $Data = null) {
    $Curl = curl_init();
    curl_setopt($Curl, CURLOPT_URL, $Url);
    curl_setopt($Curl, CURLOPT_SSL_VERIFYPEER, FALSE);        
    curl_setopt($Curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    if (!empty($Data)) {
        curl_setopt($Curl, CURLOPT_POST, 1);
        curl_setopt($Curl, CURLOPT_POSTFIELDS, $Data);
    }    
   curl_setopt($Curl, CURLOPT_RETURNTRANSFER, 1);
   $Output = curl_exec($Curl);
   curl_close($Curl);
   return $Output;}

好了,到這里就可以了,openid已經(jīng)獲取到了,其他好像沒(méi)什么問(wèn)題了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市辕羽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌猫十,老刑警劉巖琢锋,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件站粟,死亡現(xiàn)場(chǎng)離奇詭異搔涝,居然都是意外死亡厨喂,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)庄呈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蜕煌,“玉大人,你說(shuō)我怎么就攤上這事诬留⌒奔停” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵故响,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我颁独,道長(zhǎng)彩届,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任誓酒,我火速辦了婚禮樟蠕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘靠柑。我一直安慰自己寨辩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布歼冰。 她就那樣靜靜地躺著靡狞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪隔嫡。 梳的紋絲不亂的頭發(fā)上甸怕,一...
    開(kāi)封第一講書(shū)人閱讀 52,475評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音腮恩,去河邊找鬼梢杭。 笑死,一個(gè)胖子當(dāng)著我的面吹牛秸滴,可吹牛的內(nèi)容都是我干的武契。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼咒唆!你這毒婦竟也來(lái)了届垫?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤钧排,失蹤者是張志新(化名)和其女友劉穎敦腔,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體恨溜,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡符衔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了糟袁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片判族。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖项戴,靈堂內(nèi)的尸體忽然破棺而出形帮,到底是詐尸還是另有隱情,我是刑警寧澤周叮,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布辩撑,位于F島的核電站,受9級(jí)特大地震影響仿耽,放射性物質(zhì)發(fā)生泄漏合冀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一项贺、第九天 我趴在偏房一處隱蔽的房頂上張望君躺。 院中可真熱鬧,春花似錦开缎、人聲如沸棕叫。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)俺泣。三九已至,卻和暖如春完残,著一層夾襖步出監(jiān)牢的瞬間砌滞,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工坏怪, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贝润,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓铝宵,卻偏偏與公主長(zhǎng)得像打掘,于是被迫代替她去往敵國(guó)和親华畏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容