首頁 >php框架 >ThinkPHP >【乾貨】ThinkPHP6對接微信掃碼登入

【乾貨】ThinkPHP6對接微信掃碼登入

王雪芹
王雪芹原創
2020-05-02 11:24:524504瀏覽

在近幾年的網路網站中,使用微信登入的場景可是越來越多。根據統計2020年,全球微信高達11億,也確實如此,微信這個好用的社交工具,可以說小到一個小學生大到你的七大姑八大姨,很多人可能沒有QQ,但他一定有微信。所以微信登入是程式設計師必備的一項工作技能。

微信掃碼登入對接ThinkPHP6,話不多說,直接上車。

一、準備資料:

1、造訪 https://open.weixin.qq.com/,註冊帳號。

2、開發者認證:企業。

3、建立一個網站應用程式:網站網域必須備案(可使用二級網域),取得對應的AppID和AppSecret,申請微信登入且通過審核。

二、存取微信登入步驟:

#首先看下微信官網給予的步驟說明:https://developers.weixin .qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html

1. 第三方發起微信授權登入要求,微信使用者允許授權第三方應用程式後,微信會拉起應用程式或重定向到第三方網站,並且帶上授權臨時票據code參數;

2. 透過code參數加上AppID和AppSecret等,透過API換取access_token;

3.透過access_token進行介面調用,取得使用者基本資料資源或幫助使用者實現基本操作。

三、接入微信登入實操環節:

1、放好微信登入圖標,並添加鏈接。

例如連結到www.a,com/index/user/weixindenglu。下面我們來看weixindenglu方法程式碼。

public function weixindenglu(){
   $appid='wx868f988d79a4f2bb';
   $redirect_uri=urldecode('http://www.dongpaiweb.cn/index/index/weixin.html');
   $url='https://open.weixin.qq.com/connect/qrconnect?appid='.$appid.'&redirect_uri='.$redirect_uri.'&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect';
        header("location:".$url);
}

這時候我們點擊微信小圖示就會出現掃碼的介面。拿出手機趕緊微信掃碼。

注意:$redirect_uri是我們的回呼位址,意思是使用者微信掃碼後的處理位址)。

2、取得用戶的code。

微信掃碼後就跳到了上面定義的回呼位址weixin方法。我們看下weixin方法程式碼:

    public function weixin(){
        $code=input('get.code');
    }

code取得很簡單,我們看下列印效果:

【乾貨】ThinkPHP6對接微信掃碼登入

3、取得Access Token 和openid,我們在weixin()方法繼續加入程式碼:

public function weixin(){
        $code=input('get.code');
        $appid='wx868f988d79a4f25b';
        $appsecret='82b426f2882b6a1398b8312cc1de037b';
        $url='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$appsecret.'&code='.$code.'&grant_type=authorization_code';
        
        //json对象变成数组
        $res=json_decode(file_get_contents($url),true);
        $access_token=$res['access_token'];
        $openid=$res['openid'];

    }

這樣我們就取得了access_token和openid,我們看下列印效果:

【乾貨】ThinkPHP6對接微信掃碼登入


【乾貨】ThinkPHP6對接微信掃碼登入

################################## ##5、獲取用戶全部信息,我們在weixin()方法中繼續添加代碼:###
public function weixin(){
        $code=input('get.code');
        $appid='wx868f988d79a4f25b';
        $appsecret='82b426f2882b6a1398b8312cc1de037b';
        $url='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$appsecret.'&code='.$code.'&grant_type=authorization_code';
        
        //json对象变成数组
        $res=json_decode(file_get_contents($url),true);
        $access_token=$res['access_token'];
        $openid=$res['openid'];

        $urlyonghu='https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid;
        $user=json_decode(file_get_contents($urlyonghu),true);
        print_r($user);
    }
###這樣我們就獲取了用戶的暱稱、地址、頭像等信息,看下打印效果:### ###############在我們取得使用者微信資訊後,我們就可以整理資料入庫了。 ######如果是使用者第一次登錄,我們可以設定綁定手機號碼的介面,綁定手機號碼後即算是註冊成功。如果我們偵測到已經綁定手機號,即代表登入成功跳到成功介面。 ######以上就是ThinkPHP6對接微信掃碼登入的操作步驟。加薪升職,趕緊get此技能! ###

以上是【乾貨】ThinkPHP6對接微信掃碼登入的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn