微信公众平台实现获取用户OpenID的方法_PHP
本文实例讲述了微信公众平台实现获取用户OpenID的方法。分享给大家供大家参考。具体分析如下:
用户点击微信自定义菜单view类型按钮后,微信客户端将会打开开发者在按钮中填写的url值 (即网页链接),达到打开网页的目的,但是view不能获取用户的openid,需要使用微信“网页授权获取用户基本信息”高级接口结合使用,获得用户的登入个人信息。
具体方法:
1、配置网页授权回调域名,如 www.bitsCN.com
2、模拟公众号的第三方网页,http://www.bitsCN.com/getcodeurl.php
<?php if(isset($_SESSION['user'])){ print_r($_SESSION['user']); exit; } $APPID='公众号在微信的appid'; $REDIRECT_URI='http://www.bitsCN.com/callback.php'; $scope='snsapi_base'; //$scope='snsapi_userinfo';//需要授权 $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、第三方网页的回跳url中,首先从请求中取得code,然后根据code进一步换取openid和access_token,然后就可以根据openid和access_token调用微信的相关接口查询用户信息了。
<?php //http://www.bitsCN.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); //根据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的微信公众平台开发有所帮助。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

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

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

Python中的檔案副檔名是附加在檔案名稱末尾的後綴,用來表示檔案的格式或類型。它通常由三個或四個字元組成,檔案名稱後面跟著一個句點,例如“.txt”或“.py”。作業系統和程式利用檔案副檔名來確定檔案的類型以及應如何處理它。被識別為純文字檔案。 Python中的檔案副檔名在讀取或寫入檔案時至關重要,因為它建立了檔案格式以及讀取和寫入資料的最佳方法。例如,「.csv」檔案副檔名是讀取CSV檔案時使用的副檔名,而csv模組則用於處理該檔案。 Python中取得檔案副檔名的演算法在Python中操作檔名字串來

使用math.Max函數取得一組數中的最大值在數學和程式設計中,經常需要找出一組數中的最大值。在Go語言中,我們可以使用math套件中的Max函數來實現這個功能。本文將介紹如何使用math.Max函數來取得一組數中的最大值,並提供對應的程式碼範例。首先,我們需要導入math包。在Go語言中,導入套件可以使用import關鍵字,如下所示:import"mat

谷歌驗證器是一種用於保護使用者帳戶安全的工具,其金鑰是用於產生動態驗證碼的重要資訊。如果忘記了谷歌驗證器的金鑰,只能透過安全碼進行驗證,那麼下文站小編就會為大家帶來谷歌安全碼在哪裡取得的詳細內容介紹,希望能幫助到大家,想要了解的用戶們就請跟著下文繼閱讀吧!首先開啟手機設置,進入設定頁面。下拉頁面,找到Google。進入Google頁面,點選Google帳號。進入帳號頁面,點選驗證碼下方的檢視。輸入密碼或使用指紋驗證身分。取得Google安全碼,利用安全碼驗證Google身分。

從Java中的LinkedHashSet中檢索最後一個元素意味著檢索其集合中的最後一個元素。儘管Java沒有內建方法來幫助檢索LinkedHashSets中的最後一個項,但存在多種有效的技術,可以提供靈活性和便利性,有效地檢索此最後一個元素而不破壞插入順序-這是Java開發人員必須在其應用程式中有效處理的問題。透過將這些策略有效地應用於他們的軟體專案中,他們可以實現滿足此要求的最佳解決方案LinkedHashSetLinkedHashSet是Java中的一種高效資料結構,它結合了HashSet和

如果「最新更新可用後立即取得最新更新」選項缺失或灰顯,則你可能正在執行開發人員頻道Windows11版本,這是正常的。對於其他人,安裝KB5026446(22621.1778)更新後會出現問題。您可以採取以下措施來取回「在最新更新可用時立即取得更新」選項。如何取回「在最新更新可用時立即取得更新」選項?在開始以下任何解決方案之前,請確保檢查最新的Windows11更新並安裝它們。 1.使用ViVeTool前往「Microsoft更新目錄」頁面並尋找KB5026446更新。在您的PC上下載並重新安裝更

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

現代科學在很大程度上依賴複數的概念,而這個概念最初是透過GirolamoCardano在16世紀引入的17世紀初建立。複數的公式是a+ib,其中a保留html代碼且b是實數。一個複數被認為有兩個部分:實部<a>和虛部(<ib>)。 i或iota的值為√-1。 C++中的複數類別是用來表示複數的類別。 C++中的complex類別可以表示並控制幾個複數操作。我們來看看如何表示和控制顯示複數。 imag()成員函數如前所述,複數由實部和虛部兩部分組成。顯示實部我們使用real()

檔案的大小是特定檔案在特定儲存裝置(例如硬碟)上所佔用的儲存空間量。檔案的大小以位元組為單位來衡量。在本節中,我們將討論如何實作一個java程式來取得給定檔案的大小(以位元組、千位元組和兆位元組為單位)。位元組是數字資訊的最小單位。一個位元組等於八位元。 1千位元組(KB)=1,024位元組1兆位元組(MB)=1,024KB千兆位元組(GB)=1,024MB和1太字節(TB)=1,024GB。文件的大小通常取決於文件的類型及其包含的資料量。以文字文件為例,文件的大小可能只有幾千字節,而高解析度圖像或影片檔案的大小可
