剛才在做微信網頁授權的時候,發生一個錯誤!!!微信網頁授權redirect_uri 參數錯誤!
遇到問題,第一時間應該做的就是查看官網微信公眾平台的技術文檔。
如果用戶在微信客戶端中訪問第三方網頁,公眾號可以通過微信網頁授權機制,來獲取用戶基本信息,進而實現業務邏輯。
關於網頁授權回調域名的說明
1、在微信公眾號請求用戶網頁授權之前,開發者需要先到公眾平台官網中的“開發 - 接口權限 - 網頁服務 - 網頁帳號 - 網頁授權獲取用戶基本信息”的配置選項中,修改授權回調域名。請注意,這裡填寫的是域名(是一個字符串),而不是URL,因此請勿加 http:// 等協議頭;
2、授權回調域名配置規范為全域名,比如需要網頁授權的域名為:www.qq.com,配置以後此域名下面的頁面http://www.qq.com/music.html 、 http://www.qq.com/login.html 都可以進行OAuth2.0鑒權。但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com無法進行OAuth2.0鑒權
3、如果公眾號登錄授權給了第三方開發者來進行管理,則不必做任何設置,由第三方代替公眾號實現網頁授權即可。
檢查微信授權的網頁服務。
網頁帳號 網頁授權獲取用戶基本信息 無上限 修改
點擊修改,進去把http://www.xxxx.cn 改為www.xxxx.cn就不會出現redirect_uri 參數錯誤!
注意:http://www.xxxx.cn這樣是可以通過網頁授權安全監測的,我們不知道這是有問題的,後來程序執行調用的時候發現redirect_uri 參數錯誤,查看文檔,回來發現,原來是這裡的錯誤。
//獲取用戶的openid
function getBaseInfo(){
//1.獲取到code
$appid="qq1813284q1q6q8888";//這裡的appid是假的演示用
$redirect_uri=urlencode("http://www.xxxx.cn/xxx.php/Index/getUserOpenId");//這裡的地址需要http://
$url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".$redirect_uri."&response_type=code&scope=snsapi_base&state=123#wechat_redirect";
header('location:'.$url);
}
function getUserOpenId(){
//2.獲取到網頁授權的access_token
$appid="qq1813284q1q6q8888";//這裡的appid是假的演示用
$appsecret="61qqqq36745987167q73bq1q2552qq75";//這裡的appsecret是假的演示用
$code=$_GET['code'];
$url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$appsecret."&code=".$code."&grant_type=authorization_code ";
//3.拉取用戶的openid
$res = $this->http_curl($url,'get');
var_dump($res);//打印即可看到用戶的openid
}
另外吐槽一下,博客園的圖片上傳很麻煩,需要先上傳到相冊,再插入圖片的時候填寫url地址,插入手機的截圖就天大地大,又要另外設定尺寸,這用戶體驗,我也是醉了。
難道是我操作不當?剛用博客園2天。