微信公眾平臺實(shí)現(xiàn)獲取用戶OpenID的方法
本文實(shí)例講述了微信公眾平臺實(shí)現(xiàn)獲取用戶OpenID的方法。分享給大家供大家參考。具體分析如下:
用戶點(diǎn)擊微信自定義菜單view類型按鈕后,微信客戶端將會打開開發(fā)者在按鈕中填寫的url值 (即網(wǎng)頁鏈接),達(dá)到打開網(wǎng)頁的目的,但是view不能獲取用戶的openid,需要使用微信“網(wǎng)頁授權(quán)獲取用戶基本信息”高級接口結(jié)合使用,獲得用戶的登入個人信息。
具體方法:
1、配置網(wǎng)頁授權(quán)回調(diào)域名,如 www.dhdzp.com
2、模擬公眾號的第三方網(wǎng)頁,http://www.dhdzp.com/getcodeurl.php
<?php
if(isset($_SESSION['user'])){
print_r($_SESSION['user']);
exit;
}
$APPID='公眾號在微信的appid';
$REDIRECT_URI='http://www.dhdzp.com/callback.php';
$scope='snsapi_base';
//$scope='snsapi_userinfo';//需要授權(quán)
$url='https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$APPID.'&redirect_uri='.urlencode($REDIRECT_URI).'&response_type=code&scope='.$scope.'&state='.$state.'#wechat_redirect';
header("Location:".$url);
?>
3、第三方網(wǎng)頁的回跳url中,首先從請求中取得code,然后根據(jù)code進(jìn)一步換取openid和access_token,然后就可以根據(jù)openid和access_token調(diào)用微信的相關(guān)接口查詢用戶信息了。
<?php //http://www.dhdzp.com/callback.php $appid = "公眾號在微信的appid"; $secret = "公眾號在微信的app secret"; $code = $_GET["code"]; $get_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code'; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$get_token_url); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); $res = curl_exec($ch); curl_close($ch); $json_obj = json_decode($res,true); //根據(jù)openid和access_token查詢用戶信息 $access_token = $json_obj['access_token']; $openid = $json_obj['openid']; $get_user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN'; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$get_user_info_url); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); $res = curl_exec($ch); curl_close($ch); //解析json $user_obj = json_decode($res,true); $_SESSION['user'] = $user_obj; print_r($user_obj); ?>
希望本文所述對大家基于php的微信公眾平臺開發(fā)有所幫助。
- 微信公眾號支付(一)如何獲取用戶openId
- .NET微信公眾號獲取OpenID和用戶信息
- PHP通過微信跳轉(zhuǎn)的Code參數(shù)獲取用戶的openid(關(guān)鍵代碼)
- MVC微信網(wǎng)頁授權(quán)獲取用戶OpenId
- ASP.NET Core2靜默獲取微信公眾號的用戶OpenId實(shí)例代碼
- 微信公眾平臺開發(fā)教程⑥ 微信開發(fā)集成類的使用圖文詳解
- 微信公眾平臺開發(fā)教程②微信端分享功能圖文詳解
- 詳解微信圖片防盜鏈“此圖片來自微信公眾平臺 未經(jīng)允許不得引用”的解決方案
- PHP封裝的微信公眾平臺接口開發(fā)操作類完整示例
- 微信公眾平臺開發(fā)教程①獲取用戶Openid及個人信息圖文詳解
相關(guān)文章
Codeigniter實(shí)現(xiàn)智能裁剪圖片的方法
這篇文章主要介紹了Codeigniter實(shí)現(xiàn)智能裁剪圖片的方法,可以做到裁剪后不失真,盡可能保留圖片主題含義。需要的朋友可以參考下2014-06-06
通過修改配置真正解決php文件上傳大小限制問題(nginx+php)
對于nginx+php的一些網(wǎng)站,上傳文件大小會受到多個方面的限制,一個是nginx本身的限制,限制了客戶端上傳文件的大小,一個是php.ini文件中默認(rèn)了多個地方的設(shè)置。所以為了解決上傳文件大小限定的問題必須要做出多處修改。以下整理了幾個地方。2015-09-09
Laravel關(guān)聯(lián)模型中過濾結(jié)果為空的結(jié)果集(has和with區(qū)別)
這篇文章主要介紹了Laravel關(guān)聯(lián)模型中過濾結(jié)果為空的結(jié)果集(has和with區(qū)別),需要的朋友可以參考下2018-10-10
超詳細(xì)的php用戶注冊頁面填寫信息完整實(shí)例(附源碼)
這篇文章主要介紹了一個超詳細(xì)的php用戶注冊頁面填寫信息完整實(shí)例,內(nèi)容包括郵箱自動匹配、密碼強(qiáng)度驗(yàn)證以及防止表單重復(fù)等,小編特別喜歡這篇文章,推薦給大家。2015-11-11
基于Laravel 5.2 regex驗(yàn)證的正確寫法
今天小編就為大家分享一篇基于Laravel 5.2 regex驗(yàn)證的正確寫法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09
CI框架實(shí)現(xiàn)遞歸生成文件路徑并重新生成圖片功能
這篇文章主要介紹了CI框架實(shí)現(xiàn)遞歸生成文件路徑并重新生成圖片功能,涉及CodeIgniter框架自定義圖片控制器類實(shí)現(xiàn)文件目錄遞歸以及調(diào)用圖片處理擴(kuò)展類進(jìn)行圖片生成相關(guān)操作技巧,需要的朋友可以參考下2018-06-06
thinkPHP線上自動加載異常與修復(fù)方法實(shí)例分析
這篇文章主要介紹了thinkPHP線上自動加載異常與修復(fù)方法,結(jié)合實(shí)例形式分析了針對服務(wù)器代碼不支持斜杠方式的情況下相關(guān)處理技巧,需要的朋友可以參考下2016-12-12

