溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ThinkPHP6實現(xiàn)對接微信掃碼登錄的方法

發(fā)布時間:2021-01-16 10:48:21 來源:億速云 閱讀:747 作者:小新 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)ThinkPHP6實現(xiàn)對接微信掃碼登錄的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。


一、準(zhǔn)備資料:

1、訪問 https://open.weixin.qq.com/,注冊賬戶。

2、開發(fā)者認(rèn)證:企業(yè)。

3、創(chuàng)建一個網(wǎng)站應(yīng)用:網(wǎng)站域名必須備案(可使用二級域名),獲得相應(yīng)的AppID和AppSecret,申請微信登錄且通過審核。

二、接入微信登錄步驟:

首先看下微信官網(wǎng)給出的步驟說明:https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html

1. 第三方發(fā)起微信授權(quán)登錄請求,微信用戶允許授權(quán)第三方應(yīng)用后,微信會拉起應(yīng)用或重定向到第三方網(wǎng)站,并且?guī)鲜跈?quán)臨時票據(jù)code參數(shù);

2. 通過code參數(shù)加上AppID和AppSecret等,通過API換取access_token;

3. 通過access_token進(jìn)行接口調(diào)用,獲取用戶基本數(shù)據(jù)資源或幫助用戶實現(xiàn)基本操作。

三、接入微信登錄實操環(huán)節(jié):

1、放好微信登錄圖標(biāo),并添加鏈接。

比如鏈接到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);
}

這個時候我們點擊微信小圖標(biāo)就會出現(xiàn)掃碼的界面。拿出手機(jī)趕緊微信掃碼。

(注意:$redirect_uri是我們的回調(diào)地址,意思是用戶微信掃碼后的處理地址)。

2、獲得用戶的code。

微信掃碼后就跳轉(zhuǎn)到了上面定義的回調(diào)地址weixin方法。我們看下weixin方法代碼:

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

code獲取很簡單,我們看下打印效果:

ThinkPHP6實現(xiàn)對接微信掃碼登錄的方法

3、獲得Access Token 和openid,我們在weixin()方法中繼續(xù)添加代碼:

public function weixin(){
        $code=input('get.code');
        $appid='wx868f988d79a4f25b';
        $appsecret='82b426f2882b6a1398b8312cc1de037b';
        $url='https://api.weixin.qq.com/sns/oauth3/access_token?appid='.$appid.'&secret='.$appsecret.'&code='.$code.'&grant_type=authorization_code';
        
        //json對象變成數(shù)組
        $res=json_decode(file_get_contents($url),true);
        $access_token=$res['access_token'];
        $openid=$res['openid'];

    }

這樣我們就獲取到了access_token和openid,我們看下打印效果:

ThinkPHP6實現(xiàn)對接微信掃碼登錄的方法

5、獲取用戶全部信息,我們在weixin()方法中繼續(xù)添加代碼:

public function weixin(){
        $code=input('get.code');
        $appid='wx868f988d79a4f25b';
        $appsecret='82b426f2882b6a1398b8312cc1de037b';
        $url='https://api.weixin.qq.com/sns/oauth3/access_token?appid='.$appid.'&secret='.$appsecret.'&code='.$code.'&grant_type=authorization_code';
        
        //json對象變成數(shù)組
        $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實現(xiàn)對接微信掃碼登錄的方法

在我們獲取用戶微信信息后,我們就可以整理數(shù)據(jù)入庫了。

如果是用戶第一次登錄,我們可以設(shè)置綁定手機(jī)號的界面,綁定手機(jī)號后即算是注冊成功。如果我們檢測到已經(jīng)綁定手機(jī)號,即代表登錄成功跳轉(zhuǎn)到成功界面。

關(guān)于“ThinkPHP6實現(xiàn)對接微信掃碼登錄的方法”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI