微信公眾平臺實現(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.dbjr.com.cn
2、模擬公眾號的第三方網(wǎng)頁,http://www.dbjr.com.cn/getcodeurl.php
<?php if(isset($_SESSION['user'])){ print_r($_SESSION['user']); exit; } $APPID='公眾號在微信的appid'; $REDIRECT_URI='http://www.dbjr.com.cn/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.dbjr.com.cn/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)文章
ThinkPHP3.2.3框架郵件發(fā)送功能圖文實例詳解
這篇文章主要介紹了ThinkPHP3.2.3框架郵件發(fā)送功能,結(jié)合圖文與實例形式詳細(xì)分析了基于thinkPHP框架進行郵件發(fā)送的相關(guān)原理、配置及操作技巧,需要的朋友可以參考下2019-04-04laravel 5異常錯誤:FatalErrorException in Handler.php line 38的解決
這篇文章主要給大家介紹了關(guān)于laravel 5異常錯誤:FatalErrorException in Handler.php line 38的解決方法,文中將解決方法介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10php bcdiv和bcmul 函數(shù)的怪異現(xiàn)象
這篇文章主要介紹了php bcdiv和bcmul 函數(shù)的怪異現(xiàn)象,本文通過實例代碼講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04PHP-FPM之Chroot執(zhí)行環(huán)境詳解
在PHP-FPM中設(shè)立chroot,有很好的隔離作用,提高系統(tǒng)安全性,但是要想建立一個合理的PHP-FPM Chroot環(huán)境難度有點大,比用debootstrap等工具建立還要麻煩,這篇文章就詳細(xì)介紹了PHP-FPM之Chroot執(zhí)行環(huán)境,需要的朋友可以參考下。2015-08-08分享一個PHP數(shù)據(jù)流應(yīng)用的簡單例子
分享一個PHP數(shù)據(jù)流應(yīng)用的簡單例子,需要的朋友可以參考下2012-06-06