微信公衆號使用PHP獲取H5網頁授權用戶信息

一、準備工具

服務號(訂閱號不能獲取網頁授權用戶信息)、域名、服務器

二、配置公衆號

1、獲取開發者id和開發者密碼
在這裏插入圖片描述
在這裏插入圖片描述
2、設置網頁授權域名:

業務域名和js接口安全域名,不需配置,只需配置網頁授權域名即可!

在這裏插入圖片描述
在這裏插入圖片描述
3、配置證書,將下載後的證書放到域名根目錄即可
在這裏插入圖片描述
如果瀏覽器能訪問到該文件,則說明配置成功:
在這裏插入圖片描述
在這裏插入圖片描述

三、代碼實現

博主所使用的是tp3框架

流程一:訪問該方法,拉起網頁授權界面,如果同意則攜帶參數跳轉到回調地址中

myurl這個地址是我自己隨意設置的回調地址,這個地址不需要在公衆號上指定!!!

	public function webpage_authorization()
    {
        $appid="微信公衆號上獲取"; //AppID
        $key="微信公衆號上獲取"; //AppSecret
        
        $myurl=urlencode("http://baidu.com/index/redirect_url"); //回調域名
        $wxurl='https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appid.'&redirect_uri='.$myurl.'&response_type=code&scope=snsapi_userinfo&state=0#wechat_redirect';
        header('Location:'.$wxurl);
    }

在這裏插入圖片描述

流程二:回調地址中獲取code,拿到code後在去請求一個接口獲取access_token和openid,拿到openid後再去請求獲取用戶信息的接口即可:
	public function redirect_url(){
    	$appid="微信公衆號上獲取"; //AppID
        $key="微信公衆號上獲取"; //AppSecret
    	$code   = $_GET['code'];
        if ($code) {
           $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$key&code=$code&grant_type=authorization_code";
           $s = file_get_contents($url);
           $s = json_decode($s, true);
        }
        $access_token = $s["access_token"];
        $openid = $s['openid'];
        //第二步:根據全局access_token和openid查詢用戶信息
        $get_user_info_url = "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openid."&lang=zh_CN";
        $userinfo = $this->http_curl($get_user_info_url); // 獲取用戶信息
		print_r($userinfo);
    }
	
	public function http_curl($url){
      //用curl傳參
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

      //關閉ssl驗證
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);


      curl_setopt($ch,CURLOPT_HEADER, 0);
      $output = curl_exec($ch);
      curl_close($ch);
      return json_decode($output, true);
    }

最後打印出的用戶信息:
在這裏插入圖片描述

四、採坑總結:

坑一:

在請求第一個接口獲取code拉起授權的時候,報錯:redirect_uri域名與後臺配置不一致,錯誤代碼10003!但是公衆號配置又沒問題,於是在第一步請求接口獲取code的時候,給回調地址這個參數加上urlencode(回調地址)後就可以了!
在這裏插入圖片描述

坑二:

公衆號設置中,只需要配置網頁授權域名即可,配置的域名不需要加http!並且回調地址是自己在代碼中設置的,不需在公衆號中配置!!!
在這裏插入圖片描述在這裏插入圖片描述

坑三:

在這裏插入圖片描述
如果只是單純的做獲取h5網頁授權用戶信息的話,服務器配置不需要啓動!!!
在這裏插入圖片描述

五、微信開發文檔

鏈接: 微信獲取網頁授權開發文檔.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章