微信公眾平臺實現(xiàn)獲取用戶OpenID的方法
本文實例講述了微信公眾平臺實現(xiàn)獲取用戶OpenID的方法。分享給大家供大家參考。具體分析如下:
用戶點擊微信自定義菜單view類型按鈕后,微信客戶端將會打開開發(fā)者在按鈕中填寫的url值 (即網(wǎng)頁鏈接),達到打開網(wǎng)頁的目的,但是view不能獲取用戶的openid,需要使用微信“網(wǎng)頁授權(quán)獲取用戶基本信息”高級接口結(jié)合使用,獲得用戶的登入個人信息。
具體方法:
1、配置網(wǎng)頁授權(quán)回調(diào)域名,如 www.fzitv.net
2、模擬公眾號的第三方網(wǎng)頁,http://www.fzitv.net/getcodeurl.php
<?php
if(isset($_SESSION['user'])){
print_r($_SESSION['user']);
exit;
}
$APPID='公眾號在微信的appid';
$REDIRECT_URI='http://www.fzitv.net/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進一步換取openid和access_token,然后就可以根據(jù)openid和access_token調(diào)用微信的相關(guān)接口查詢用戶信息了。
<?php //http://www.fzitv.net/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實例代碼
- 微信公眾平臺開發(fā)教程⑥ 微信開發(fā)集成類的使用圖文詳解
- 微信公眾平臺開發(fā)教程②微信端分享功能圖文詳解
- 詳解微信圖片防盜鏈“此圖片來自微信公眾平臺 未經(jīng)允許不得引用”的解決方案
- PHP封裝的微信公眾平臺接口開發(fā)操作類完整示例
- 微信公眾平臺開發(fā)教程①獲取用戶Openid及個人信息圖文詳解
相關(guān)文章
通過修改配置真正解決php文件上傳大小限制問題(nginx+php)
對于nginx+php的一些網(wǎng)站,上傳文件大小會受到多個方面的限制,一個是nginx本身的限制,限制了客戶端上傳文件的大小,一個是php.ini文件中默認了多個地方的設(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

