微信接口開發之高級篇系列【網頁受權詳細說明【提供測試帳號使用】】

 本篇文章你將學到:在本身作的微信網站裏,利用oauth2.0網頁受權接口獲取用戶的信息(openid,姓名,性別,地區,頭像等)。如大轉盤等遊戲記錄哪一個微信用戶得到什麼獎品、H5等小遊戲須要把分數與對應用戶捆綁在一塊兒等網頁應用。html

微信公衆平臺oauth2.0網頁受權能幹什麼

它是在本身作的網站中不用用戶登陸來獲取微信用戶相關信息的,進而實現相關業務。json

說明與注意

一、網頁受權分爲兩種,api

     一種爲只獲取openid  (基本受權 snsapi_base)數組

     一種爲獲取用戶所有信息 (高級受權 snsapi_userinfo)。瀏覽器

二、你的公衆號必須爲認證的訂閱號或者認證的服務號。不然沒有此接口權限。微信

三、你要配置好回調域名:即用戶點擊網址獲取用戶信息後打開哪一個域名。app

四、若有下圖錯誤請檢查是否配置好回調域名或者公衆號是否定證(我以前一直測試提示以下圖出錯,仔細查找錯誤才發現沒配置回調域名)微信公衆平臺

怎樣配置回調域名

一、進入https://mp.weixin.qq.com,點擊最下面的」接口權限「菜單(以下圖)
框架

1-一、若是是測試帳號的話,以下圖curl

  (1)打開瀏覽器,這裏以IE爲例,輸入:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

     (2)

     (3)用手機登陸你的微信,使用微信中的「掃一掃」功能,掃描上面網頁中的二維碼。在手機上會出現如下界面:

        

     (4)網頁受權獲取用戶基本信息

二、找到‘網頁受權用戶基本信息’,以下圖


三、點擊修改,填寫域名。如:個人回調網址爲http://wechatu.xd107.com/home/WeiXin/index 則填寫wechatu.xd107.com。配置回調域名完成。

無論獲取openid仍是用戶全部信息都須要首先配置回調域名

 四、實際代碼(ThinkPhp框架)

class WeiXinController extends Controller
{

    /**
     * 這裏採用高級受權模式,爲了獲取用戶信息
     * 這個頁面是用戶進來就可以剛問的頁面,也就是首次進來的頁面
     * 首先訪問的地址 ;http://wechatu.xd107.com/home/WeiXin/index
     */
    public function index()
    {
        $appid = 'wx94c43716d8a91f3f';
        /*基本受權 方法跳轉地址*/
        $redirect_uri = urlencode('http://wechatu.xd107.com/home/WeiXin/getUserInfo');

        /*基本受權 snsapi_base*/
        //$url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".$redirect_uri."&response_type=code&scope=snsapi_base&state=1234#wechat_redirect";

        /*高級受權 snsapi_userinfo*/
        $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" . $appid . "&redirect_uri=" . $redirect_uri . "&response_type=code&scope=snsapi_userinfo&state=1234#wechat_redirect";
        //跳轉
        header('location:' . $url);
    }

    /*拉取用戶信息*/
    public function getUserInfo()
    {
        $appid = 'wx94c43716d8a91f3f';
        $appsecret = 'd4624c36b6795d1d99dcf0547af5443d';
        /*回調的時候自帶的這個參數*/
        $code = $_GET['code'];

        /*基本受權 snsapi_base*/
        //$url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".$redirect_uri."&response_type=code&scope=snsapi_base&state=1234#wechat_redirect";
        $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" . $appid . "&secret=" . $appsecret . "&code=" . $code . "&grant_type=authorization_code";

        $result = json_decode(curlPost($url,$parm = null),true);

        /*取出數組中的access_token這個值*/
        $access_token = $result['access_token'];
        $openid = $result['openid'];
        $URL2 = "https://api.weixin.qq.com/sns/userinfo?access_token=" . $access_token . "&openid=" . $openid . "&lang=zh_CN";
        $responseInfo = json_decode(curlPost($URL2,$parameter = null),true);
        $_SESSION['headimgurl'] = $responseInfo['headimgurl'];
        var_dump($responseInfo);
        die;
        $this->headimgurl = $responseInfo['headimgurl'];
        $this->userInfo = $responseInfo;
        $this->display();
    }
}

 五、流程圖(百度腦圖)

說明:開始詳解:(1)網頁受權分爲兩種,(2)微信公衆帳號和用戶的微信聯繫字段爲【openid】

 

六、具體步驟:

 

 

相關文章
相關標籤/搜索